php自定义的格式化时间示例代码

原创 2013年12月06日 09:19:27
时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,自定义的格式化时间方法如下,感兴趣的朋友可以参考下
如:时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,不多说了,直接贴上代码:
 代码如下:
unity3d官网 http://www.unitymanual.com
/**
* 格式化时间
* @param integer $timestamp 时间戳
* @param string $format dt=日期时间 d=日期 t=时间 u=个性化 其他=自定义
* @param integer $timeoffset 时区值
* @param string $custom_format 自定义时间格式
* @return string
*/
public function dgmdate( $timestamp, $format = 'dt', $timeoffset = '9999', $custom_format = '' ) {
$return = '';
$now = time();
$day_format = 'Y-n-j';
$time_format = 'H:i:s';
$date_format = $day_format . ' ' . $time_format;
$offset = 8; //这里默认是东八区,也就是北京时间
$lang = array(
'before' => '前',
'day' => '天',
'yday' => '昨天',
'byday' => '前天',
'hour' => '小时',
'half' => '半',
'min' => '分钟',
'sec' => '秒',
'now' => '刚刚',
);
$timeoffset = $timeoffset == 9999 ? $offset : $timeoffset;
$timestamp += $timeoffset * 3600;
switch ( $format ) {
case 'dt':
$format = $date_format;
break;
case 'd':
$format = $day_format;
break;
case 't':
$format = $time_format;
break;
}
if ( $format == 'u' ) {
$todaytimestamp = $now - ($now + $timeoffset * 3600) % 86400 + $timeoffset * 3600;
$s = gmdate( empty( $custom_format ) ? $date_format : $custom_format, $timestamp );
$time = $now + $timeoffset * 3600 - $timestamp;
if ( $timestamp >= $todaytimestamp ) {
if ( $time > 3600 ) {
$return = '<span title="' . $s . '">' . intval( $time / 3600 ) . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 1800 ) {
$return = '<span title="' . $s . '">' . $lang['half'] . $lang['hour'] . $lang['before'] . '</span>';
} elseif ( $time > 60 ) {
$return = '<span title="' . $s . '">' . intval( $time / 60 ) . $lang['min'] . $lang['before'] . '</span>';
} elseif ( $time > 0 ) {
$return = '<span title="' . $s . '">' . $time . $lang['sec'] . $lang['before'] . '</span>';
} elseif ( $time == 0 ) {
$return = '<span title="' . $s . '">' . $lang['now'] . '</span>';
} else {
$return = $s;
}
} elseif ( ($days = intval( ($todaytimestamp - $timestamp) / 86400 )) >= 0 && $days < 7 ) {
if ( $days == 0 ) {
$return = '<span title="' . $s . '">' . $lang['yday'] . gmdate( $time_format, $timestamp ) . '</span>';
} elseif ( $days == 1 ) {
$return = '<span title="' . $s . '">' . $lang['byday'] . gmdate( $time_format, $timestamp ) . '</span>';
} else {
$return = '<span title="' . $s . '">' . ($days + 1) . $lang['day'] . $lang['before'] . '</span>';
}
} else {
$return = $s;
}
} else {
$return = gmdate( $format, $timestamp );
}
return $return;
}

相关文章推荐

第四章示例代码__自定义对象行为

  • 2013年03月04日 16:34
  • 3.22MB
  • 下载

java自定义监听器的示例代码

JAVA用户自定义事件监听完整例子- ---sunfruit     很多介绍用户自定义事件都没有例子,或是例子不全,下面写了一个完整的例子,并写入了注释以便参考,完整的实例源代码如下: pac...
  • ihrthk
  • ihrthk
  • 2012年03月07日 23:36
  • 2042

自定义MFC ClistCtrl控件的示例代码

Author: kagula@20150401 环境:  vs2013sp1  自定义行高、字体、颜色。 如何引用的示例代码 初始化 BOOL CTestListCtrlDlg::OnInit...

【Android】使用AIDL传递用户自定义类型数据--附完整示例代码

AIDL对Java类型的支持 AIDL支持Java原始数据类型 AIDL支持String和CharSequence AIDL支持传递其他AIDL接口,但你引用的每个AIDL接口都需要...

微信自定义菜单的 创建|查询|取消 示例代码

微信公众帐号 服务号可以使用 自定义菜单功能。之前在创建菜单时一直失败,原因是$data 格式一直没有传正确,后来终于解决了。这里先记录下 顺便封装了一个类,便于自定义菜单的管理。此类仅仅是自定义菜单...

Linux Device Driver 3, Chp 7 时间、延迟及延缓操作 示例代码修改 -- for kernel 2.6.32

Chp 3 字符设备驱动程序 实验代码 1. 编译出现 “TASK_INTERRUPTIBLE”的问题就包含 2. current->uid不能直接引用,需要改成 current->cre...

PHP读取和编写XML DOM示例代码

本文为大家提供的是PHP读取和编写XML DOM示例代码,感兴趣的同学参考下。 // 用 DOM 读取 XML $doc = new DOMDocument(); $doc->load(...

微信公众平台开发(PHP)(二) 微信公众平台示例代码分析

一、摘要 微信公众平台提供了一个简单的php示例代码,在做进一步开发之前,我们有必要将其详细了解一下。 二、获取代码 微信官网:http://mp.weixin.qq.com/mpres/htm...
  • twlkyao
  • twlkyao
  • 2013年12月24日 22:42
  • 1602
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php自定义的格式化时间示例代码
举报原因:
原因补充:

(最多只允许输入30个字)