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 相关文章推荐
vBulletin HACK----显示话题大小和打开新窗口于论坛索引页
Oct 09 PHP
php缓存技术介绍
Nov 25 PHP
php数组总结篇(一)
Sep 30 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
php fsockopen中多线程问题的解决办法[翻译]
Nov 09 PHP
PHP安装threads多线程扩展基础教程
Nov 17 PHP
yii2.0使用Plupload实现带缩放功能的多图上传
Dec 22 PHP
详解php魔术方法(Magic methods)的使用方法
Feb 14 PHP
php简单备份与还原MySql的方法
May 09 PHP
Yii2创建表单(ActiveForm)方法详解
Jul 23 PHP
php字符串截取函数mb_substr用法实例分析
Jun 25 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 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中的常用函数回顾
2013/07/11 PHP
如何解决PHP使用mysql_query查询超大结果集超内存问题
2016/03/14 PHP
PHP严重致命错误处理:php Fatal error: Cannot redeclare class or function
2017/02/05 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
使用Entrust扩展包在laravel 中实现RBAC的功能
2020/03/16 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jQuery中insertAfter()方法用法实例
2015/01/08 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
Bootstrap中的Dropdown下拉菜单更改为悬停(hover)触发
2016/08/31 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
jQuery拖拽通过八个点改变div大小
2020/11/29 Javascript
vue监听滚动事件实现滚动监听
2017/04/11 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
微信小程序开发之IOS和Android兼容的问题
2017/09/26 Javascript
微信小程序如何调用新闻接口实现列表循环
2019/07/02 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
使用TS来编写express服务器的方法步骤
2020/10/29 Javascript
antd table按表格里的日期去排序操作
2020/11/17 Javascript
[05:20]2018DOTA2亚洲邀请赛主赛事第三日战况回顾 LGD率先挺进胜者组决赛
2018/04/06 DOTA
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
2016/05/17 Python
Python绘制的二项分布概率图示例
2018/08/22 Python
python实现二维插值的三维显示
2018/12/17 Python
pycharm的console输入实现换行的方法
2019/01/16 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
python解析多层json操作示例
2019/12/30 Python
python代码实现TSNE降维数据可视化教程
2020/02/28 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
基于python连接oracle导并出数据文件
2020/04/28 Python
python爬取天气数据的实例详解
2020/11/20 Python
Kiwi.com中国:找到特价机票并发现新目的地
2019/10/27 全球购物
企业安全生产责任书
2014/04/14 职场文书
公务员年度考核个人总结
2015/02/12 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS