php格式化时间戳显示友好的时间实现思路及代码


Posted in PHP onOctober 23, 2014

在项目中时间一律显示为2014-10-20 10:22显得很呆板。在微博、QQ空间等网站通常会显示为几秒前,几分钟前,几小时前等容易阅读的时间,我们称之为友好的时间格式。那么用php怎么实现呢?

大体思路如下:

如果是跨年并且大于3天就显示为具体的时间

如果是今天的

如果是一分钟内则显示几秒之前

如果是一小时内则显示几分钟前

如果是当天且大于一小时则显示为几小时前

如果是昨天则显示为昨天几点

如果是前天则显示为前天几点

如果大于三天(没有跨年)则显示为几月几号

根据以上思路就不难写出实现代码了:

实现代码如下:

//格式化友好显示时间
function formatTime($time){
$now=time();
$day=date('Y-m-d',$time);
$today=date('Y-m-d');

$dayArr=explode('-',$day);
$todayArr=explode('-',$today);

//距离的天数,这种方法超过30天则不一定准确,但是30天内是准确的,因为一个月可能是30天也可能是31天
$days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);
//距离的秒数
$secs=$now-$time;

if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超过3天
return date('Y-m-d',$time);
}else{

if($days<1){//今天
if($secs<60)return $secs.'秒前';
elseif($secs<3600)return floor($secs/60)."分钟前";
else return floor($secs/3600)."小时前";
}else if($days<2){//昨天
$hour=date('h',$time);
return "昨天".$hour.'点';
}elseif($days<3){//前天
$hour=date('h',$time);
return "前天".$hour.'点';
}else{//三天前
return date('m月d号',$time);
}
}
}
PHP 相关文章推荐
菜鸟学PHP之Smarty入门
Jan 04 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php解析http获取的json字符串变量总是空白null
Mar 02 PHP
PHP实现链式操作的核心思想
Jun 23 PHP
深入理解PHP中的Streams工具
Jul 03 PHP
PHP处理数组和XML之间的互相转换
Jun 02 PHP
php结合mysql与mysqli扩展处理事务的方法
Jun 29 PHP
php简单处理XML数据的方法示例
May 19 PHP
Laravel模型事件的实现原理详解
Mar 14 PHP
php压缩文件夹最新版
Jul 18 PHP
PHP正则表达式 /i, /is, /s, /isU等介绍
Oct 23 #PHP
PHP函数实现分页含文本分页和数字分页
Oct 23 #PHP
10个实用的PHP正则表达式汇总
Oct 23 #PHP
PHP中怎样防止SQL注入分析
Oct 23 #PHP
PDO防注入原理分析以及使用PDO的注意事项总结
Oct 23 #PHP
常用PHP框架功能对照表
Oct 23 #PHP
C/S和B/S两种架构区别与优缺点分析
Oct 23 #PHP
You might like
以文本方式上传二进制文件的PHP程序
2006/10/09 PHP
Ajax PHP简单入门教程代码
2008/04/25 PHP
PHP对文件进行加锁、解锁实例
2015/01/23 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
asp函数split()对应php函数explode()
2019/02/27 PHP
JSON 学习之JSON in JavaScript详细使用说明
2010/02/23 Javascript
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
JS简单实现浮动窗口效果示例
2016/09/07 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
jQuery Mobile漏洞会有跨站脚本攻击风险
2017/02/12 Javascript
angularjs的select使用及默认选中设置
2017/04/08 Javascript
详解Vue用axios发送post请求自动set cookie
2017/05/10 Javascript
详解Webpack-dev-server的proxy用法
2018/09/08 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
js实现3D照片墙效果
2019/10/28 Javascript
微信小程序实现上拉加载功能
2019/11/20 Javascript
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
Vue绑定用户接口实现代码示例
2020/11/04 Javascript
Python实现在线程里运行scrapy的方法
2015/04/07 Python
使用pygame模块编写贪吃蛇的实例讲解
2018/02/05 Python
django数据库migrate失败的解决方法解析
2018/02/08 Python
numpy返回array中元素的index方法
2018/06/27 Python
在cmder下安装ipython以及环境的搭建
2018/10/19 Python
Pycharm自动添加文件头注释和函数注释参数的方法
2020/10/23 Python
用python写一个带有gui界面的密码生成器
2020/11/06 Python
澳大利亚在线家具店:Luxo Living
2019/03/24 全球购物
龟牌英国商店:Turtle Wax Brand Store UK
2019/07/02 全球购物
有个性的自我评价范文
2013/11/15 职场文书
商务专员岗位职责
2013/11/23 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
婚礼主持词
2014/03/13 职场文书
残疾人小组计划书
2014/04/27 职场文书
大学活动总结范文
2014/04/29 职场文书
有关信念的名言语录集锦
2019/12/06 职场文书
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL