2011-10-21 130 views
1

我正在寫一個PHP函數,計算從mySQL數據庫表中檢索到的當前時間和時間戳(例如:2011-10-21 11:16:00)的差異。錯誤的結果計算時間差

問題: 計算出來的時間差似乎是6個小時!我通過代碼檢查,我不知道爲什麼幾分鐘前製作的時間戳會導致6小時的時間差!但是,當我將變量$datetime_now設置爲特定值時,計算出的時間差是正確的!任何幫助指出我在正確的方向非常感謝!

PHP代碼:

$datetime_now = new DateTime; 
$datetime_post = new DateTime($results[$key]['post_timestamp']); //ie. 2011-10-21 11:16:00 
$interval = $datetime_now->diff($datetime_post); 
$hours = $interval->format('%h'); 

附加信息:

我在本地機器上運行的Web服務器(XAMPP包),以及訪問來自同一系統的網頁。

+0

你的時區是什麼時區? MySQL是在不同的時區存儲時間戳字段,然後是你的物理時區。 –

回答

3

時區,我猜你是GMT-6?通過對所有交易使用UTC來糾正此問題,然後在最後階段轉換爲本地時間。檢查你的服務器區域設置,我敢打賭,你會和你住的地方不一樣。

+0

我在波士頓,是時區UTC/GMT -5小時?錯誤是6小時雖然..讓我檢查我的服務器設置,我發現他們在Apache設置下,或者有一個下PHP或MYSQL? – Nyxynyx

+0

服務器在波士頓嗎? –

+0

你在運行什麼樣的託管服務器? Linux/Windows的?你有終端接入嗎? – Whetstone