2012-04-12 46 views
-1

可能重複:
Converting timestamp to time ago in php e.g 1 day ago, 2 days agoPHP標記顯示器秒

我想顯示文章幾歲是通過PHP。我正在做的是使用下面的代碼在MySQL中存儲php時間戳。

$timestamp=time();

所以後來我留下了許多這樣的

1334216865

我怎麼會去改變它,所以它會說例如:

8秒前

如果刷新頁面10秒後它將顯示:

18秒前

我不知道如何將時間戳轉換回時間來顯示我的示例。

謝謝

+0

提示:一個時間戳*自1月1日1970年的秒數*現在一秒的時間戳記後之間的區別正是1 ... – deceze 2012-04-12 07:01:19

回答

5

或者你可以做一個小小的「TIME_AGO」功能:

function ago($time) { 
    $timediff=time()-$time; 

    $days=intval($timediff/86400); 
    $remain=$timediff%86400; 
    $hours=intval($remain/3600); 
    $remain=$remain%3600; 
    $mins=intval($remain/60); 
    $secs=$remain%60; 

    if ($secs>=0) $timestring = "0m".$secs."s"; 
    if ($mins>0) $timestring = $mins."m".$secs."s"; 
    if ($hours>0) $timestring = $hours."u".$mins."m"; 
    if ($days>0) $timestring = $days."d".$hours."u"; 

    return $timestring; 
} 
echo ago(1334214962); 
3
echo (time() - $post_timestamp) . " seconds ago"; 

非常簡單。

+0

所以像昨天上午,89531秒前:-) – Matten 2012-04-12 07:03:49

+0

我得到一個 - 例如:-2640秒前 – 2012-04-12 07:03:58

+1

對於更復雜的顯示需要分隔功能。但那不是他想要的。 :-) – castor 2012-04-12 07:04:50

2

只需再次運行時間()函數,並減去發佈時間 - 然後做一些運算,輸出了有多久了:每分鐘60秒,每小時60分鐘,等...時間函數是多少自很久以前的某個事件以來的秒數。所以,時間函數每增加1秒。