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 相关文章推荐
配置支持SSI
Nov 25 PHP
PHP 字符串编码截取函数(兼容utf-8和gb2312)
May 02 PHP
创建配置文件 用PHP写出自己的BLOG系统 2
Apr 12 PHP
将一维或多维的数组连接成一个字符串的php代码
Aug 08 PHP
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
Dec 25 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP使用数组依次替换字符串中匹配项
Jan 08 PHP
PHP目录操作实例总结
Sep 27 PHP
php生成网页桌面快捷方式
May 05 PHP
php写app接口并返回json数据的实例(分享)
May 20 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
PHP生成随机密码4种方法及性能对比
Dec 11 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
phpmyadmin3 安装配置图解教程
2012/03/29 PHP
php 判断服务器操作系统的类型
2014/02/17 PHP
php计算title标题相似比的方法
2015/07/29 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
2017/03/14 PHP
PHP实现Session入库/存入redis的方法
2017/05/04 PHP
jQuery实现的类flash菜单效果代码
2010/05/17 Javascript
在Windows上安装Node.js模块的方法
2011/09/25 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JavaScript实现页面跳转的方式汇总
2016/05/16 Javascript
swiper自定义分页器使用方法详解
2020/09/14 Javascript
vue实现城市列表选择功能
2018/07/16 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
layui使用button按钮 点击出现弹层 弹层中加载表单的实例
2019/09/04 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
微信小程序收藏功能的实现代码
2020/06/19 Javascript
vue项目接口域名动态获取操作
2020/08/13 Javascript
详解Vue的异步更新实现原理
2020/12/22 Vue.js
python实现数通设备端口监控示例
2014/04/02 Python
Python中__new__与__init__方法的区别详解
2015/05/04 Python
python3解析库lxml的安装与基本使用
2018/06/27 Python
Python字符串的常见操作实例小结
2019/04/08 Python
Python使用百度翻译开发平台实现英文翻译为中文功能示例
2019/08/08 Python
安装PyInstaller失败问题解决
2019/12/14 Python
python使用selenium爬虫知乎的方法示例
2020/10/28 Python
深入理解HTML的FormData对象
2016/05/17 HTML / CSS
什么叫应用程序域?什么是受管制的代码?什么是强类型系统?什么是装箱和拆箱?
2016/08/13 面试题
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
挖掘机司机岗位职责
2014/02/12 职场文书
讲座主持词
2014/03/20 职场文书
推荐信格式要求
2014/05/09 职场文书
巾帼文明岗汇报材料
2014/12/24 职场文书
考勤制度通知
2015/04/25 职场文书
二审答辩状范文
2015/05/22 职场文书
安全教育观后感
2015/06/17 职场文书