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入门教程 精简版
Dec 13 PHP
PHP生成UTF8文件的方法
May 15 PHP
php实现查看邮件是否已被阅读的方法
Dec 03 PHP
PHP中IP地址与整型数字互相转换详解
Aug 20 PHP
PHP基于文件存储实现缓存的方法
Jul 20 PHP
PHP实现简单汉字验证码
Jul 28 PHP
用PHP将Unicode 转化为UTF-8的实现方法(推荐)
Feb 08 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
yii2.0整合阿里云oss上传单个文件的示例
Sep 19 PHP
Laravel使用消息队列需要注意的一些问题
Dec 13 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
Mar 26 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
索尼SONY ICF-7600A(W)电路分析
2021/03/01 无线电
使用 MySQL 开始 PHP 会话
2006/12/21 PHP
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
PHP基于mssql扩展远程连接MSSQL的简单实现方法
2016/10/08 PHP
动态刷新 dorado树的js代码
2009/06/12 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
JS实现随机化快速排序的实例代码
2013/08/01 Javascript
JavaScript闭包函数访问外部变量的方法
2014/08/27 Javascript
JavaScript前补零操作实例
2015/03/11 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
docker中编译nodejs并使用nginx启动
2017/06/23 NodeJs
vue的.vue文件是怎么run起来的(vue-loader)
2018/12/10 Javascript
NodeJS实现同步的方法
2019/03/02 NodeJs
Vue设置长时间未操作登录自动到期返回登录页
2020/01/22 Javascript
Electron 打包问题:electron-builder 下载各种依赖出错(推荐)
2020/07/09 Javascript
[01:05:40]VG vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python探索之静态方法和类方法的区别详解
2017/10/27 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
python儿童学游戏编程知识点总结
2019/06/03 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
使用django自带的user做外键的方法
2020/11/30 Python
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
意大利灯具购物网站:Lampade.it
2018/10/18 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
如果一个类实现了多个接口但是这些接口有相同的方法名将会怎样
2013/06/16 面试题
生态学毕业生自荐信
2013/10/27 职场文书
八年级物理教学反思
2014/01/19 职场文书
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
物理课外活动总结
2014/08/27 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
2014年骨干教师工作总结
2014/12/19 职场文书
毕业证明模板
2015/06/19 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书