PHP CodeBase: 將時間顯示爲「剛剛」「n分鐘/小時前」等

在不少場合爲了顯示出信息的及時性,通常會將時間顯示成「剛剛」,「5分鐘前」,「3小時前」等,而不是直接將時間打印出來。好比微博,SNS類應用就最長用到這個功能。而通常存儲在數據庫中的時間格式爲 Unix時間戳,因此這裏記錄一個將 Unix時間戳 轉化爲時間軸顯示的PHP函數。php

函數比較簡單,直接看代碼就很好懂了。數據庫

<?php

date_default_timezone_set('PRC');
$date = "1351836000";
echo tranTime($date);

function transfer_time($time)
{
    $rtime = date("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 = '昨天 '.$rtime;
        else
            $str = '前天 '.$rtime;
    }
    else
    {
        $str = $rtime;
    }
    return $str;
}

?>

注意函數transfer_time()中的參數$time必須爲Unix時間戳,若是不是請先用strtotime()將其轉換成Unix時間戳。函數

相關文章
相關標籤/搜索