溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

php時(shí)間戳格式化如何顯示友好的時(shí)間函數(shù)

發(fā)布時(shí)間:2021-09-07 15:42:46 來(lái)源:億速云 閱讀:153 作者:Yi 欄目:開(kāi)發(fā)技術(shù)

這篇文章給大家介紹php時(shí)間戳格式化如何顯示友好的時(shí)間函數(shù),內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

大體思路如下:

如果是跨年并且大于3天就顯示為具體的時(shí)間

如果是今天的
 
        如果是一分鐘內(nèi)則顯示幾秒之前
 
        如果是一小時(shí)內(nèi)則顯示幾分鐘前
 
        如果是當(dāng)天且大于一小時(shí)則顯示為幾小時(shí)前

如果是昨天則顯示為昨天幾點(diǎn)

如果是前天則顯示為前天幾點(diǎn)

如果大于三天(沒(méi)有跨年)則顯示為幾月幾號(hào)

根據(jù)以上思路就不難寫出實(shí)現(xiàn)代碼了:

實(shí)現(xiàn)代碼如下:

復(fù)制代碼 代碼如下:


//格式化友好顯示時(shí)間
function formatTime($time){
    $now=time();
    $day=date('Y-m-d',$time);
    $today=date('Y-m-d');
   
    $dayArr=explode('-',$day);
    $todayArr=explode('-',$today);
   
    //距離的天數(shù),這種方法超過(guò)30天則不一定準(zhǔn)確,但是30天內(nèi)是準(zhǔn)確的,因?yàn)橐粋€(gè)月可能是30天也可能是31天
    $days=($todayArr[0]-$dayArr[0])*365+(($todayArr[1]-$dayArr[1])*30)+($todayArr[2]-$dayArr[2]);
    //距離的秒數(shù)
    $secs=$now-$time;
   
    if($todayArr[0]-$dayArr[0]>0 && $days>3){//跨年且超過(guò)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)."小時(shí)前";
        }else if($days<2){//昨天
            $hour=date('h',$time);
            return "昨天".$hour.'點(diǎn)';
        }elseif($days<3){//前天
            $hour=date('h',$time);
            return "前天".$hour.'點(diǎn)';
        }else{//三天前
            return date('m月d號(hào)',$time);
        }
    }
}

關(guān)于php時(shí)間戳格式化如何顯示友好的時(shí)間函數(shù)就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI