首頁  >  文章  >  後端開發  >  PHP實現時間軸函數(個人化時間)

PHP實現時間軸函數(個人化時間)

巴扎黑
巴扎黑原創
2016-11-11 15:04:161715瀏覽

我們在論壇發文、發表評論、或者是使用QQ空間發布日誌、微博發表言論時,會看到發表的內容後的時間顯示為“剛剛”、“5分鐘前”、“昨天10:23”等,而不是直接顯示特定日期和時間。 
本文將介紹如何實現基於時間軸的時間的轉換。 
首先我們要明白時間的幾個函數: 
time():傳回目前的 Unix 時間戳 
date():格式化一個本地時間/日期。
應用範例: 
date("Y-m-d H:i:s",time()); 
格式化目前時間,輸出:2010-10-11 05:27:35 
strtotime():將任何英文文字的日期時間描述解析為Unix 時間戳記。 
應用範例: 
echo strtotime("+1 day"), "n"; 
輸出1天前的時間戳:1286861475 
date_default_timezone_set():設定要使用的預設時區。
一般我們設定北京時間:date_default_timezone_set("PRC"); 
理解上面幾個函數後我們來寫時間軸函數: 
該函數的原理就是將系統當前時間與目標時間比較,得到一個差值,然後將差值與時間範圍(轉換成秒)比較,根據其處在時間軸的範圍輸出不同的結果(如:5分鐘前)。為了方便計算,我們將時間都轉換成Unix時間戳記。
function tranTime($time) { 
    $rtime = date("m-d H:i",$time); 
    $htime = date("H:i",$time); $time; 

    if ($time         $str = '剛'; 
    }   floor($time/60);         $str = $min.'分鐘前'; 
    } 
    elseif ($time         $h = floor($time/(60*60)); 
        $str = $h.'小時前' .$htime; 
    } 
    elseif ($time        1) 
           $ str = '昨天'.$rtime; 
        else 
           $str = '前天'.$rtime  = $rtime;     } 
    return $str; 

函數tranTime()中的參數$time必須為Unix時間戳,如果不是請先用strtotime()將其轉換成Unix時間戳記。上面的程式碼一看就明白了,不用再多述。 
呼叫函數,直接輸出: 
$times="1286861696 "; 
echo tranTime($times); 

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn