2012-03-05 99 views
-2

我使用查詢從數據庫中提取時間戳,如何將該時間戳與當前時間進行比較。我正在嘗試輸出結果,「X分鐘前更新」。比較PHP中的時間戳

時間戳關閉服務器的格式是YYYY-MM-DD HH-MM-SS(24小時制)

謝謝!

+1

'strtotime'應該能夠處理該格式 – scibuff 2012-03-05 17:46:09

+1

可能的重複http://stackoverflow.com/search?q=time+ago+php – Gordon 2012-03-05 17:47:43

+0

可能的重複http://stackoverflow.com/questions/2113940/ php-compare-date – Farray 2012-03-05 17:48:54

回答

3

您可以最多時間(包括那些從MySQL源)轉換與strtotime()爲Unix時間戳(自1970年1月1日的秒的計數)

所以,你可以做

$then = $your_date_from_mysql; 
$now = time(); 
$time_ago = $now - strtotime($then); //gets time ago in seconds 
$minutes = $time_ago/60; //you could call floor() on this to round it down - or ceil() to round up 
echo "Updated {$minutes} minutes ago"; 
1

假設你「再使用MySQL:

SELECT UNIX_TIMESTAMP(now()) - UNIX_TIMESTAMP(timestampfield) AS seconds 

然後

echo "Updated ", ceil($seconds/60), " seconds ago"; 

最好讓數據庫執行計算 - 它已經獲得了內部格式的時間戳,可以輕鬆進行這些計算。選擇一個格式化的字符串,然後將字符串轉換回時間值等等,只是浪費計算時間。

+0

謝謝,讓你編輯第二部分代碼,應該是幾分鐘而不是幾秒鐘。 – socbrian 2012-03-05 18:01:57

+0

這就是'/ 60'部分 - 以mysql返回並轉換爲分鐘的秒爲單位。 – 2012-03-05 18:06:59