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 adodb连接带密码access数据库实例,测试成功
May 14 PHP
PHP has encountered an Access Violation at 7C94BD02解决方法
Aug 24 PHP
php顺序查找和二分查找示例
Mar 27 PHP
PHP 面向对象程序设计(oop)学习笔记 (五) - PHP 命名空间
Jun 12 PHP
Yii不依赖Model的表单生成器用法实例
Dec 04 PHP
PHP输出两个数字中间有多少个回文数的方法
Mar 23 PHP
Yii2如何批量添加数据
May 17 PHP
php中使用websocket详解
Sep 23 PHP
PHP简单实现防止SQL注入的方法
Mar 13 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
Laravel框架集合用法实例浅析
May 14 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 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和ACCESS写聊天室(五)
2006/10/09 PHP
windows下开发并编译PHP扩展的方法
2011/03/18 PHP
apache和PHP如何整合在一起
2015/10/12 PHP
Yii中CArrayDataProvider和CActiveDataProvider区别实例分析
2016/03/02 PHP
PHP简单判断字符串是否包含另一个字符串的方法
2016/03/25 PHP
PHP面试常用算法(推荐)
2016/07/22 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
JavaScript脚本性能优化注意事项
2008/11/18 Javascript
javascript 显示当前系统时间代码
2009/12/28 Javascript
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
不同的jQuery API来处理不同的浏览器事件
2012/12/09 Javascript
jquery 层次选择器siblings与nextAll的区别介绍
2013/08/02 Javascript
轻松使用jQuery双向select控件Bootstrap Dual Listbox
2015/12/13 Javascript
js字符串操作总结(必看篇)
2016/11/22 Javascript
Angularjs2不同组件间的通信实例代码
2017/05/06 Javascript
微信小程序 动画的简单实例
2017/10/12 Javascript
使用JS获取SessionStorage的值
2018/01/12 Javascript
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
vue+axios新手实践实现登陆的示例代码
2018/06/06 Javascript
vue之debounce属性被移除及处理详解
2019/11/13 Javascript
[05:02]2014DOTA2 TI中国区预选赛精彩TOPPLAY第三弹
2014/06/25 DOTA
Python lxml模块安装教程
2015/06/02 Python
Python实现爬虫抓取与读写、追加到excel文件操作示例
2018/06/27 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
小结Python的反射机制
2020/09/28 Python
利用Canvas模仿百度贴吧客户端loading小球的方法示例
2017/08/13 HTML / CSS
指针和引用有什么区别
2013/01/13 面试题
会展中心部门工作职责
2013/11/27 职场文书
ktv收银员岗位职责
2013/12/16 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
优质服务演讲稿
2014/05/14 职场文书
工作自我评价范文
2015/03/05 职场文书
大学生团支书竞选稿
2015/11/21 职场文书
Python+Matplotlib+LaTeX玩转数学公式
2022/02/24 Python