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
PHP5 面向对象程序设计
Feb 13 PHP
PHP fopen()和 file_get_contents()应用与差异介绍
Mar 19 PHP
php序列化函数serialize() 和 unserialize() 与原生函数对比
May 08 PHP
一个PHP实现的轻量级简单爬虫
Jul 08 PHP
php求一个网段开始与结束IP地址的方法
Jul 09 PHP
理清PHP在Linxu下执行时的文件权限方法
Jun 07 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
修改yii2.0用户登录使用的user表为其它的表实现方法(推荐)
Aug 01 PHP
PHP环形链表实现方法示例
Sep 15 PHP
Laravel 实现密码重置功能
Feb 23 PHP
Laravel框架中缓存的使用方法分析
Sep 06 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
摩卡咖啡
2021/03/03 咖啡文化
php不用内置函数对数组排序的两个算法代码
2010/02/08 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
解析PHP对现有搜索引擎的调用
2013/06/25 PHP
微信支付扫码支付php版
2016/07/22 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
javascript firefox不显示本地预览图片问题的解决方法
2008/11/12 Javascript
自己的js工具 Event封装
2009/08/21 Javascript
JS动态添加Table的TR,TD实现方法
2015/01/28 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
js实现可输入可选择的select下拉框
2016/12/21 Javascript
基于substring()和substr()的使用以及区别(实例讲解)
2017/12/28 Javascript
JS实现不用中间变量temp 实现两个变量值得交换方法
2018/02/04 Javascript
vue获取验证码倒计时组件
2019/08/26 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
Vue+axios封装请求实现前后端分离
2020/10/23 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
python中的变量如何开辟内存
2018/06/26 Python
django 将model转换为字典的方法示例
2018/10/16 Python
python 如何将数据写入本地txt文本文件的实现方法
2019/09/11 Python
python框架django项目部署相关知识详解
2019/11/04 Python
Python-jenkins模块之folder相关操作介绍
2020/05/12 Python
如何查看浏览器对html5的支持情况
2020/12/15 HTML / CSS
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
国际贸易专业推荐信
2013/11/15 职场文书
大学生职业生涯规划书模版
2013/12/30 职场文书
大型会议接待方案
2014/03/01 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2015年中秋节活动总结
2015/03/23 职场文书
终止劳动合同通知书
2015/04/16 职场文书
辣妈辣妹观后感
2015/06/10 职场文书
尊师重教主题班会
2015/08/14 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
Windows server 2016服务器基本设置
2022/08/14 Servers