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 相关文章推荐
56.com视频采集接口程序(PHP)
Sep 22 PHP
删除无限分类并同时删除它下面的所有子分类的方法
Aug 08 PHP
支持中文的php加密解密类代码
Nov 27 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
Jun 29 PHP
PHP解析html类库simple_html_dom的转码bug
May 22 PHP
CodeIgniter中实现泛域名解析
Jul 19 PHP
使用php-timeit估计php函数的执行时间
Sep 06 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
Mar 23 PHP
php 静态属性和静态方法区别详解
Apr 09 PHP
PHP从数组中删除元素的四种方法实例
May 12 PHP
tp5框架基于Ajax实现列表无刷新排序功能示例
Feb 10 PHP
PHP xpath提取网页数据内容代码解析
Jul 16 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
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PHP与Java进行通信的实现方法
2013/10/21 PHP
php时间戳转换的示例
2014/03/31 PHP
destoon实现VIP排名一直在前面排序的方法
2014/08/21 PHP
利用PHP脚本在Linux下用md5函数加密字符串的方法
2015/06/29 PHP
CodeIgniter配置之database.php用法实例分析
2016/01/20 PHP
PHP中PDO的事务处理分析
2016/04/07 PHP
动态表格Table类的实现
2009/08/26 Javascript
jquery 缓存问题的几个解决方法
2013/11/11 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
jquery实现类似淘宝星星评分功能实例
2014/09/12 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
vue实现ToDoList简单实例
2017/02/07 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
vue+node实现图片上传及预览的示例方法
2018/11/22 Javascript
vue 项目接口管理的实现
2019/01/17 Javascript
python多线程抓取天涯帖子内容示例
2014/04/03 Python
python解决Fedora解压zip时中文乱码的方法
2016/09/18 Python
python实现简单学生信息管理系统
2020/04/09 Python
Python PyQt5模块实现窗口GUI界面代码实例
2020/05/12 Python
欧洲有机婴儿食品最大的市场:Organic Baby Food(供美国和加拿大)
2018/03/28 全球购物
C#中有没有运算符重载?能否使用指针?
2014/05/05 面试题
优秀学生自我鉴定范例
2013/12/18 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
文化与传播毕业生求职信
2014/03/09 职场文书
2014年减负工作总结
2014/12/10 职场文书
2014年学校团委工作总结
2014/12/20 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
2016入党积极分子考察评语
2015/12/01 职场文书
2016先进工作者事迹材料
2016/02/25 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
写给医护人员的一封感谢信
2019/09/16 职场文书
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL