PHP时间格式化显示(刚刚、几分钟前、几小时前、昨天等)

<?php
 
/**
 * 文章时间格式化
 * @param     int|string     $time      时间戳|日期
 * @param     bool         $isYear 是否显示年份
 * @return     string
 */
function formatTime($time, $isYear = false) {
    if(!$time) {
        return '';
    }
    if (!is_numeric($time)) {
        $time_new       = strtotime($time);
        if (!$time_new) {
            return $time;
        } else {
            $time       = $time_new;
        }
    }
 
    $now                = time();
 
    if(($dur = $now - $time) <= 600) {
        $time           = '刚刚';
    } elseif (date('Ymd', $now) == date('Ymd', $time)) {
        if(($dur = $now - $time) < 3600) {
            $temp       = floor($dur/60);
            if($temp == 60) {
                $time   = '1小时前';
            } else {
                $time   = $temp . '分钟前';
            }
        } else {
            $time       = floor($dur/3600) . '小时前';
        }
    } else {
        if(date('Ymd',strtotime('-1 day')) == date('Ymd', $time)) {
            $time       = sprintf('昨天 %s:%s', date('H', $time), date('i', $time));
        } else {
            if ($isYear && date('Y') > date('Y', $time)) {
                $time       = date('y-n-j', $time);
            } else {
                $time       = sprintf('%s-%s', date('n', $time), date('j', $time));
            }
        }
    }
 
    return $time;
}
 
# 执行效果如下:
echo formatTime(time()); // 刚刚
 
echo formatTime(1682659570);// 昨天 05:26
 
echo formatTIme("-3 day"); // 4-26

 

版权声明:
作者:tianya
链接:https://tya.zone/p/110.html
来源:天涯博客
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
海报
PHP时间格式化显示(刚刚、几分钟前、几小时前、昨天等)
<?php /** * 文章时间格式化 * @param int|string $time 时间戳|日期 * @param bool $isYear 是否显示年份 * @retur……
<<上一篇
下一篇>>