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和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
Jul 03 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
PHP基础知识介绍
Sep 17 PHP
php基础设计模式大全(注册树模式、工厂模式、单列模式)
Aug 31 PHP
PHP+AJAX实现投票功能的方法
Sep 28 PHP
Yii2中使用join、joinwith多表关联查询
Jun 30 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP后台微信支付和支付宝支付开发
Apr 28 PHP
Laravel网站打开速度优化的方法汇总
Jul 16 PHP
PHP命名空间简单用法示例
Dec 28 PHP
PHP中命名空间的使用例子
Mar 22 PHP
PHP获取学生成绩的方法
Nov 17 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php 字符过滤类,用于过滤各类用户输入的数据
2009/05/27 PHP
PHP 使用 Imagick 裁切/生成缩略图/添加水印自动检测和处理 GIF
2016/02/19 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
翻译整理的jQuery使用查询手册
2007/03/07 Javascript
利用进制转换压缩数字函数分享
2014/01/02 Javascript
简单的代码实现jquery定时器
2014/01/03 Javascript
Jquery 获取指定标签的对象及属性的设置与移除
2014/05/29 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
js使用split函数按照多个字符对字符串进行分割的方法
2015/03/20 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
JavaScript调试之console.log调试的一个小技巧分享
2017/08/07 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
angular6的响应式表单的实现
2018/10/10 Javascript
layui自定义验证,用ajax查询后台是否有重复数据,form.verify的例子
2019/09/06 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
[01:05:41]EG vs Optic Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
Python with语句上下文管理器两种实现方法分析
2018/02/09 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
Python tkinter的grid布局及Text动态显示方法
2018/10/11 Python
Appium Python自动化测试之环境搭建的步骤
2019/01/23 Python
Python lxml模块的基本使用方法分析
2019/12/21 Python
python使用配置文件过程详解
2019/12/28 Python
Python如何将装饰器定义为类
2020/07/30 Python
Avène雅漾美国官方网站:敏感肌肤护理专家
2016/10/24 全球购物
信息管理员岗位职责
2013/12/01 职场文书
自我评价怎么写正确呢?
2013/12/02 职场文书
预备党员转正思想汇报
2014/01/12 职场文书
期末学生评语大全
2014/04/24 职场文书
质量承诺书格式
2014/05/20 职场文书
力学专业求职信
2014/07/23 职场文书
西安导游词
2015/02/12 职场文书
学生党支部工作总结2015
2015/05/26 职场文书
2019幼儿教师求职信(3篇)
2019/09/20 职场文书
完美解决golang go get私有仓库的问题
2021/05/05 Golang