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版)
Oct 09 PHP
解析PayPal支付接口的PHP开发方式
Nov 28 PHP
CodeIgniter实现更改view文件夹路径的方法
Jul 04 PHP
PHP中调用SVN命令更新网站方法
Jan 07 PHP
检测codeigniter脚本消耗内存情况的方法
Mar 21 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
May 09 PHP
Yii框架ACF(accessController)简单权限控制操作示例
Apr 26 PHP
Yii框架页面渲染操作实例详解
Jul 19 PHP
PHP框架实现WebSocket在线聊天通讯系统
Nov 21 PHP
PHP代码覆盖率统计详解
Jul 22 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
我常用的几个类
2006/10/09 PHP
php-fpm开启状态统计的方法详解
2017/06/23 PHP
javascript 日历提醒系统( 兼容所有浏览器 )
2009/04/07 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
JavaScript判断密码强度(自写代码)
2013/09/06 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
Bootstrap企业网站实战项目4
2016/10/14 Javascript
vue组件中点击按钮后修改输入框的状态实例代码
2017/04/14 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
2020/02/06 Javascript
JavaScript 替换所有匹配内容及正则替换方法
2020/02/12 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
python实现apahce网站日志分析示例
2014/04/02 Python
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
Python教程之全局变量用法
2016/06/27 Python
Python如何实现文本转语音
2016/08/08 Python
python非递归全排列实现方法
2017/04/10 Python
pyqt5自定义信号实例解析
2018/01/31 Python
Python matplotlib图例放在外侧保存时显示不完整问题解决
2020/07/28 Python
Pycharm plot独立窗口显示的操作
2020/12/11 Python
西班牙太阳镜品牌:Hawkers
2018/03/11 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
实习护士自我鉴定
2013/10/13 职场文书
高分子材料与工程专业推荐信
2013/12/01 职场文书
大学生期末自我鉴定
2014/02/01 职场文书
大学生创业项目方案
2014/03/08 职场文书
宣传普通话标语
2014/06/27 职场文书
2015年公共机构节能宣传周活动总结
2015/03/26 职场文书
新人入职感言
2015/07/31 职场文书
中秋节祝酒词
2015/08/12 职场文书
Windows10下安装MySQL8
2021/04/06 MySQL