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 相关文章推荐
一个简单实现多条件查询的例子
Oct 09 PHP
有关PHP中MVC的开发经验分享
May 17 PHP
PHP中__get()和__set()的用法实例详解
Jun 04 PHP
判断php数组是否为索引数组的实现方法
Jun 13 PHP
php中文验证码实现示例分享
Jan 12 PHP
php银联网页支付实现方法
Mar 04 PHP
php reset() 函数指针指向数组中的第一个元素并输出实例代码
Nov 21 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
May 12 PHP
laravel实现于语言包的完美切换方法
Sep 29 PHP
Laravel手动返回错误码示例
Oct 22 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 PHP
PHP7 字符串处理机制修改
Mar 09 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生成文件
2007/01/15 PHP
详解PHP中cookie和session的区别及cookie和session用法小结
2016/06/12 PHP
Laravel框架Request、Response及Session操作示例
2019/05/06 PHP
php定期拉取数据对比方法实例
2019/09/22 PHP
HR vs CL BO3 第一场 2.13
2021/03/10 DOTA
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
Bootstrap布局之栅格系统详解
2016/06/13 Javascript
jquery滚动条插件(可以自定义)
2016/12/11 Javascript
使用Vue实现图片上传的三种方式
2018/07/17 Javascript
python实现获取序列中最小的几个元素
2014/09/25 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python机器学习之神经网络实现
2018/10/13 Python
Python 脚本获取ES 存储容量的实例
2018/12/27 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
使用批处理脚本自动生成并上传NuGet包(操作方法)
2019/11/19 Python
Python标准库itertools的使用方法
2020/01/17 Python
TensorFlow——Checkpoint为模型添加检查点的实例
2020/01/21 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
详解Python多线程下的list
2020/07/03 Python
pandas数据分组groupby()和统计函数agg()的使用
2021/03/04 Python
详解移动端h5页面根据屏幕适配的四种方案
2020/04/15 HTML / CSS
澳大利亚香水在线:Price Rite Mart
2017/12/28 全球购物
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
介绍一下linux的文件系统
2012/03/20 面试题
物业管理员岗位职责范文
2013/11/25 职场文书
上班上网检讨书
2014/01/29 职场文书
大型公益活动策划方案
2014/08/20 职场文书
研修心得体会
2014/09/04 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
关爱留守儿童捐款倡议书
2015/04/27 职场文书
环境卫生标语
2015/08/03 职场文书
授权协议书范本(3篇)
2019/10/15 职场文书