2011-11-13 36 views
2

我有一個網站,允許用戶發佈信息。當他們發佈時,它會被插入到數據庫中,並且數據庫會添加一個時間戳。將數據庫中的日期轉換爲其他時區

當我主持我的本地機器上的數據庫,時間戳在我的時區。我的新託管網站已設置爲GMT時間。

我怎樣才能使它顯示在我的時區的時間?我試過添加

date_default_timezone_set('America/New_York'); 

我的意見只是在標籤下,但這並沒有幫助。有任何想法嗎?

+0

你可以改變服務器上的時區? –

+0

不,不幸的是。 – swl1020

回答

3
// Set the time zone 
$dateTimeZone = new DateTimeZone('America/New_York'); 

// Create the datetime and set the timestamp 
$dateTime = new DateTime(); 
$dateTime->setTimestamp($timestamp); 

// Convert it 
$dateTime->setTimeZone($dateTimeZone); 

echo $dateTime->format('m/d/Y H:i:s'); 

應工作我猜

+0

當我插入數據庫而不是使用數據庫時間戳功能時,請執行此操作嗎? – swl1020

+0

那麼有兩種方法可以去。可以在Web服務器上創建日期時間值/時間戳值並將其插入到數據庫中(從而將時間存儲在Web服務器的時區),或者使用GMT獲取時間並將其轉換爲您的網站。 (我的答案的例子)然而,最好同步這兩個。這會讓你在某個時候遇到麻煩(在某處忘記NOW()) – mobius

+0

你的例子給了我這個錯誤 致命錯誤:調用非對象的成員函數setTimeZone() – swl1020

相關問題