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 相关文章推荐
用PHP产生动态的影像图
Oct 09 PHP
phpmyadmin MySQL 加密配置方法
Jul 05 PHP
PHP开发需要注意的安全问题
Sep 01 PHP
PHP删除特定数组内容并且重建数组索引的方法.
Mar 25 PHP
PHP flush()与ob_flush()的区别详解
Jun 03 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
Jul 29 PHP
ThinkPHP自动完成中使用函数与回调方法实例
Nov 29 PHP
Laravel 5框架学习之日期,Mutator 和 Scope
Apr 08 PHP
Zend Framework+smarty用法实例详解
Mar 19 PHP
简单实现PHP留言板功能
Dec 21 PHP
PHP实现随机数字、字母的验证码功能
Aug 01 PHP
Laravel5.1 框架路由基础详解
Jan 04 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
关于我转生变成史莱姆这档事:第二季PV上线,萌王2021年回归
2020/05/06 日漫
php对图像的各种处理函数代码小结
2013/07/08 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
php5对象复制、clone、浅复制与深复制实例详解
2019/08/14 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
JavaScript中Cookie操作实例
2015/01/09 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
纯JS实现表单验证实例
2016/12/24 Javascript
详解javascript立即执行函数表达式IIFE
2017/02/13 Javascript
常用的9个JavaScript图表库详解
2017/12/19 Javascript
vue.js做一个简单的编辑菜谱功能
2018/05/08 Javascript
小程序兼容安卓和IOS数据处理问题及坑
2018/09/18 Javascript
js实现带积分弹球小游戏
2020/07/21 Javascript
用实例解释Python中的继承和多态的概念
2015/04/27 Python
基于pip install django失败时的解决方法
2018/06/12 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
python腾讯语音合成实现过程解析
2019/08/01 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
django实现用户注册实例讲解
2019/10/30 Python
python 实现二维字典的键值合并等函数
2019/12/06 Python
Pytorch模型转onnx模型实例
2020/01/15 Python
python:删除离群值操作(每一行为一类数据)
2020/06/08 Python
用sleep间隔进行python反爬虫的实例讲解
2020/11/30 Python
浅谈利用缓存来优化HTML5 Canvas程序的性能
2015/05/12 HTML / CSS
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
No7 Beauty美国官网:英国国民护肤品牌
2019/10/31 全球购物
诺思信科技(南京)有限公司.NET笔试题答案
2013/07/06 面试题
初中生自我鉴定
2014/02/04 职场文书
法学专业自我鉴定
2014/02/05 职场文书
找规律教学反思
2016/02/23 职场文书
Python字符串的转义字符
2022/04/07 Python