php时间戳格式化显示友好的时间函数分享


Posted in PHP onOctober 21, 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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
php auth_http类库进行身份效验
Mar 19 PHP
PHP中=赋值操作符对不同数据类型的不同行为
Jan 02 PHP
让CodeIgniter的ellipsize()支持中文截断的方法
Jun 12 PHP
php通过隐藏表单控件获取到前两个页面的url
Sep 09 PHP
php绘图之生成饼状图的方法
Jan 24 PHP
PHP查看当前变量类型的方法
Jul 31 PHP
PHP Smarty模版简单使用方法
Mar 30 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
PHP+AJAX 投票器功能
Nov 11 PHP
PDO::commit讲解
Jan 27 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 PHP
ThinkPHP整合百度Ueditor图文教程
Oct 21 #PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
Oct 21 #PHP
php读取目录及子目录下所有文件名的方法
Oct 20 #PHP
php中的字符编码转换函数用法示例
Oct 20 #PHP
PHP实现通过中文字符比率来判断垃圾评论的方法
Oct 20 #PHP
php的ZipArchive类用法实例
Oct 20 #PHP
php自定义apk安装包实例
Oct 20 #PHP
You might like
xml+php动态载入与分页
2006/10/09 PHP
mysql中存储过程、函数的一些问题
2007/02/14 PHP
php urlencode()与urldecode()函数字符编码原理详解
2011/12/06 PHP
在PHP中利用wsdl创建标准webservice的实现代码
2011/12/07 PHP
php连接微软MSSQL(sql server)完全攻略
2016/11/27 PHP
详解PHP中curl_multi并发的实现
2020/06/08 PHP
学习从实践开始之jQuery插件开发 菜单插件开发
2012/05/03 Javascript
漂亮的jquery提示效果(仿腾讯弹出层)
2013/02/05 Javascript
JS实现字体选色板实例代码
2013/11/20 Javascript
快速解决FusionCharts联动的中文乱码问题
2013/12/04 Javascript
jquery库文件略庞大用纯js替换jquery的方法
2014/08/12 Javascript
jquery左右全屏大尺寸多图滑动效果代码分享
2015/08/28 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
JavaScript必看小技巧(必看)
2016/06/07 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
简单实现JavaScript弹幕效果
2020/08/27 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
理解python中生成器用法
2017/12/20 Python
Django自定义用户认证示例详解
2018/03/14 Python
Django 使用Ajax进行前后台交互的示例讲解
2018/05/28 Python
python生成器用法实例详解
2019/11/22 Python
python 画函数曲线示例
2019/12/04 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
Flask缓存静态文件的具体方法
2020/08/02 Python
pytorch中index_select()的用法详解
2021/01/06 Python
学校办公室主任职责
2013/12/27 职场文书
素质拓展感言
2014/01/29 职场文书
财务总监岗位职责
2014/03/07 职场文书
学校班子个人对照检查材料思想汇报
2014/09/27 职场文书
捐助感谢信
2015/01/22 职场文书
幼儿园食品安全责任书
2015/05/08 职场文书
具结保证书范本
2015/05/11 职场文书
监守自盗观后感
2015/06/10 职场文书
办公用品管理制度
2015/08/04 职场文书