PHP实现前天昨天今天或几天前的时间戳功能

作者Veris 文章分类 分类:PHP 文章评论 0条评论 阅读次数 已被围观 2461

经常在微博上看到显示几分钟前、几小时前、前天、昨天、今天、几天前、等功能,比直接显示日期时间感觉要好一些,经过一翻琢磨,其实也很容易,转换成时间戳,然后计算两个时间的时间差,再换算就可以了。其实泪雪之前在设计开发泪雪旗下极客行站点的时候就已经研究这个功能了,这里就简单上一下代码。

以下代码可以实现上述的功能外,还根据时间判断了显示方式,7天内,超过3天的则会显示显示几天前,而超过7天则会显示年月日小时分钟。

<?php
//时间转换函数
function tranTime($time)
{
    $rtime = date("m-d H:i", $time);
    $rtime2 = date("Y-m-d H:i", $time);
    $htime = date("H:i", $time);
    $time = time() - $time;
    if ($time < 60) {
        $str = '刚刚';
    } elseif ($time < 60 * 60) {
        $min = floor($time / 60);
        $str = $min . ' 分钟前';
    } elseif ($time < 60 * 60 * 24) {
        $h = floor($time / (60 * 60));
        $str = $h . '小时前 ' . $htime;
    } elseif ($time < 60 * 60 * 24 * 3) {
        $d = floor($time / (60 * 60 * 24));
        if ($d == 1) {
            $str = '昨天 ' . $htime;
        } else {
            $str = '前天 ' . $htime;
        }
    } elseif ($time < 60 * 60 * 24 * 7) {
        $d = floor($time / (60 * 60 * 24));
        $str = $d . ' 天前 ' . $htime;
    } elseif ($time < 60 * 60 * 24 * 30) {
        $str = $rtime;
    } else {
        $str = $rtime2;
    }
    return $str;
}
$times = strtotime($w_time);
//$w_time 存储的时间字段
echo tranTime($times);

分类:PHP
标签: 时间戳

发表评论: