PHP

PHP实现 自定义个性化时间戳

PHP实现 一分钟内 小时前 昨天的显示


   /**
     * 个性化时间显示 几天前、几小时前、几分钟前..
     * @param string 原时间
     * @param int 原时间格式 1:日期时间格式 0:时间戳 default:1
     * @return string 个性化时间
     */
    public static function uTime($tm, $num = 1)
    {
        if ($num == 1) {
            $tm = strtotime($tm);
        }
        $cur_tm = time();
        $dif = $cur_tm - $tm;
        $pds = array('秒', '分钟', '小时', '天', '周', '个月', '年');
        $lngh = array(1, 60, 3600, 86400, 604800, 2630880, 31570560);
        for ($v = sizeof($lngh) - 1; ($v >= 0) && (($no = $dif / $lngh[$v]) <= 1); $v--) ;
        if ($v < 0) $v = 0;
        $_tm = $cur_tm - ($dif % $lngh[$v]);
        $no = floor($no);
        $x = sprintf("%d%s", $no, $pds[$v]);
        return $x . "前";
    }

/**
     * 个性化时间显示 几天前、几小时前、几分钟前..
     * @param string 原时间
     * @param int 原时间格式 1:日期时间格式 0:时间戳 default:1
     * @return string 个性化时间
     */
    public static function uTime($tm, $num = 1)
    {
        if ($num == 1) {
            $tm = strtotime($tm);
        }
        $cur_tm = time();
        $dif = $cur_tm - $tm;
        $pds = array('秒', '分钟', '小时', '天', '周', '个月', '年');
        $lngh = array(1, 60, 3600, 86400, 604800, 2630880, 31570560);
        for ($v = sizeof($lngh) - 1; ($v >= 0) && (($no = $dif / $lngh[$v]) <= 1); $v--) ;
        if ($v < 0) $v = 0;
        $_tm = $cur_tm - ($dif % $lngh[$v]);
        $no = floor($no);
        $x = sprintf("%d%s", $no, $pds[$v]);
        return $x . "前";
    }




留言簿


113.116.237.206

1个月前

挺实用!

回复

(c) 2024 OYYM - 赣ICP备17008861号-1

欧阳裕民个人博客