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


Posted in PHP onDecember 05, 2013

如:时间刚好是5分钟前,则对应的时间戳就会被格式化为5分钟前,不多说了,直接贴上代码:

/** 
* 格式化时间 
* @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在字符串中查找指定字符串并删除的代码
Oct 02 PHP
PHP脚本中include文件出错解决方法
Nov 20 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
Jun 25 PHP
利用php+mcDropdown实现文件路径可在下拉框选择
Aug 07 PHP
PHP中判断变量为空的几种方法分享
Aug 26 PHP
php导出csv格式数据并将数字转换成文本的思路以及代码分享
Jun 05 PHP
PHP对象相互引用的内存溢出实例分析
Aug 28 PHP
PHP文件锁函数flock()详细介绍
Nov 18 PHP
php用户注册时常用的检验函数实例总结
Dec 22 PHP
PHP符合PSR编程规范的实例分享
Dec 21 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
Jul 20 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 #PHP
PHP数据库链接类(PDO+Access)实例分享
Dec 05 #PHP
php函数指定默认值方法的小例子
Dec 04 #PHP
PHP函数microtime()用法与说明
Dec 04 #PHP
php实现memcache缓存示例讲解
Dec 04 #PHP
php实现文件下载(支持中文文名)
Dec 04 #PHP
php指定函数参数默认值示例代码
Dec 04 #PHP
You might like
PHP仿盗链代码
2012/06/03 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
可以保证单词完整性的PHP英文字符串截取代码分享
2014/07/15 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
PHP关键特性之命名空间实例详解
2017/05/06 PHP
Yii框架组件的事件机制原理与用法分析
2020/04/07 PHP
Prototype使用指南之hash.js
2007/01/10 Javascript
Jquery CheckBox全选方法代码附js checkbox全选反选代码
2010/06/09 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
JavaScript高级程序设计 阅读笔记(二十) js错误处理
2012/08/14 Javascript
jquery 表格的增行删行实现思路
2013/03/21 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
js判断是否按下了Shift键的方法
2015/01/27 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
学习JavaScript设计模式(继承)
2015/11/26 Javascript
Spring shiro + bootstrap + jquery.validate 实现登录、注册功能
2017/06/02 jQuery
JavaScript箭头函数_动力节点Java学院整理
2017/06/28 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
JS解惑之Object中的key是有序的么
2019/05/06 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
vue中destroyed方法的使用说明
2020/07/21 Javascript
[02:03]完美世界DOTA2联赛10月30日赛事集锦
2020/10/31 DOTA
Python中利用aiohttp制作异步爬虫及简单应用
2018/11/29 Python
tensorflow之获取tensor的shape作为max_pool的ksize实例
2020/01/04 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
python能否java成为主流语言吗
2020/06/22 Python
Python使用sys.exc_info()方法获取异常信息
2020/07/23 Python
Waterford美国官网:爱尔兰水晶制品品牌
2017/04/26 全球购物
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
大学生村官座谈会发言材料
2014/05/25 职场文书
会计岗位职责范本
2015/04/02 职场文书
公司员工辞职信范文
2015/05/12 职场文书
公历12个月名称的由来
2022/04/12 杂记