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;
}

php:自定义的格式化时间方法

php:自定义的格式化时间方法。如:时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前...
  • zyb_icanplay7
  • zyb_icanplay7
  • 2013年12月05日 16:13
  • 766

PHP格式化时间输出

使用函式 date() 实现如果是PHP连接MS SQL SERVER,直接输出从MSSQL中读取的时间有可能报Object of class DateTime could not be conver...
  • suleil1
  • suleil1
  • 2015年10月28日 16:49
  • 487

想不明白的:php格式化时间问题

日期在SQL Server 2000里是smalldatetime,现在要把里面的数据倒到MySQL里:timestamp,所用的工具函数如下:function formatStringDate($s...
  • xiaofanku
  • xiaofanku
  • 2008年06月10日 17:01
  • 1606

js 自定义日期(Date)格式化

1.日期格式化形式如下:Tues Apr 18 15:06:21 20162.格式化代码如下: Date.prototype.Format = function(fmt) { va...
  • wlh123wlh456
  • wlh123wlh456
  • 2016年04月23日 09:20
  • 230

php格式化时间

使用函式 date() 实现 显示的格式: 年-月-日 小时:分钟:秒 相关时间参数: a - "am" 或是 "pm" A - "AM" 或是 "PM" d - 几日,二位数字,若不足二位则前面补...
  • liq330
  • liq330
  • 2007年07月31日 21:25
  • 1579

Phalcon Volt模板之过滤器 (Filters)

Phalcon Volt模板之过滤器 (Filters)
  • Q718330882
  • Q718330882
  • 2016年08月04日 15:42
  • 1075

php 格式化时间

2016-09-13 11:05:21 -> Sep 13  11:05
  • worldzhy
  • worldzhy
  • 2016年04月14日 00:36
  • 185

PHP 时间日期格式化字符串总结

作者: 溪水清澈 12:02 date() 年 月 日 周 时(12时) (24时) 分 秒 ...
  • windqyoung
  • windqyoung
  • 2013年03月09日 23:39
  • 1295

PHP 格式化日期

不带世纪数位 (yy) 带世纪数位 (yyyy) 标准 输入/输出** - 0 或 100 (*)  默认值 mon dd yyyy hh:miAM(或 PM) 1 101 美国 mm/dd/yyyy...
  • riyao
  • riyao
  • 2005年12月29日 10:22
  • 3048

PHP日期和时间设置时区

最近学习了好多知识,成就感爆棚!今晚来总结下PHP日期和时间! 从PHP官方文档中得到的信息:有效的时间戳典型范围是格林威治时间 1901 年 12 月 13 日 20:45:54 到 2038 年...
  • Jaystrong
  • Jaystrong
  • 2017年05月19日 21:14
  • 111
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:php自定义的格式化时间示例代码
举报原因:
原因补充:

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