2011-09-06 47 views
0

這是我的問題,我有一個來自php的時間戳,服務器的時間是從我的3個小時。我已經將時間偏移了三個小時,但很快意識到,在凌晨2點,時間戳的日期部分讀取日期(日期和月份)的前一天,並且直到凌晨3點才改變。這是一個問題,因爲日期很重要,我需要它是準確的。我嘗試過時區更改,但似乎無法使其工作。我住在俄亥俄州,所以我需要的時間和服務器所在的時區是三個小時的時間。所以,有兩件事可以幫助我,一個是時區變化,一天工作3小時,而不是時間。這裏是我當前的代碼:php日期補償

$timechange = mktime(date("g")+3, date("i"), 0, date("m"), date("d"), date("y")); 

$date = date("D, d M Y g:i",$timechange); 

回答

4
$now = new DateTime('now', new DateTimeZone('America/Ohio')); // whatever your TZ's name happens to be 

$now->setTimeZone('America/ServerTZ'); // reset to your server's TZ 

$datestr = $now->format('D, d M Y g:i'); // get TZ's time as a nice string 

通過做setTimeZone時,將影響函數的輸出 - 內部時間戳是不變的。

+0

我說了很快,它返回這個錯誤:'致命的錯誤:不能實例化不存在的類:datetime' – Osman

+0

DateTime被添加到5.2中。 –

+0

有沒有解決這個問題的方法? – Osman