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 09 PHP
php实现的mongodb操作类实例
Apr 03 PHP
PHP的数组中提高元素查找与元素去重的效率的技巧解析
Mar 03 PHP
php实现带读写分离功能的MySQL类完整实例
Jul 28 PHP
PHP简单创建压缩图的方法
Aug 24 PHP
Yii框架创建cronjob定时任务的方法分析
May 23 PHP
PHP输出Excel PHPExcel的方法
Jul 26 PHP
PHP7数组的底层实现示例
Aug 25 PHP
Laravel等框架模型关联的可用性浅析
Dec 15 PHP
yii2.0框架数据库操作简单示例【添加,修改,删除,查询,打印等】
Apr 13 PHP
PHP连接MySQL数据库操作代码实例解析
Jul 11 PHP
PHP引擎php.ini参数优化深入讲解
Mar 24 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学习笔记之 函数声明
2011/06/09 PHP
php连接mssql的一些相关经验及注意事项
2013/02/05 PHP
destoon实现资讯信息前面调用它所属分类的方法
2014/07/15 PHP
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)
2014/11/08 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP实现对图片的反色处理功能【测试可用】
2018/02/01 PHP
兼容IE和Firefox火狐的上下、左右循环无间断滚动JS代码
2013/04/19 Javascript
Jquery操作js数组及对象示例代码
2014/05/11 Javascript
javascript的日期对象、数组对象、二维数组使用说明
2014/12/22 Javascript
JavaScript中的Truthy和Falsy介绍
2015/01/01 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
JavaScript提升性能的常用技巧总结【经典】
2016/06/20 Javascript
AngularJS 模型详细介绍及实例代码
2016/07/27 Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
2016/09/19 Javascript
js获取浏览器高度 窗口高度 元素尺寸 偏移属性的方法
2016/11/21 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
详解微信小程序文件下载--视频和图片
2019/04/24 Javascript
微信小程序设置滚动条过程详解
2019/07/25 Javascript
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
Python的字典和列表的使用中一些需要注意的地方
2015/04/24 Python
Python实现以时间换空间的缓存替换算法
2016/02/19 Python
深入理解Python中的*重复运算符
2017/10/28 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
python+selenium识别验证码并登录的示例代码
2017/12/21 Python
python使用opencv按一定间隔截取视频帧
2018/03/06 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
python调用opencv实现猫脸检测功能
2019/01/15 Python
python绘图模块之利用turtle画图
2021/02/12 Python
市场安全管理制度
2014/01/26 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
公司财务部岗位职责
2015/04/14 职场文书
赡养老人协议书范本
2015/08/06 职场文书
简单实现一个手持弹幕功能+文字抖动特效
2021/03/31 HTML / CSS