2012-01-10 44 views
0

我設置時區在PHP中:PHP的時區和時間不匹配

date_default_timezone_set("Europe/Istanbul"); 
ini_set('date.timezone', 'Europe/Istanbul'); 

然後當我得到的日期時間和時區

date('Y-m-d H:i'); date_default_timezone_get(); 

,打印

2012-01-10 05:20 Europe/Istanbul 

時間區域是正確的,但時間是錯誤的, 任何想法,會是什麼原因? 謝謝!

+0

當時區無法識別時,時間通常以UTC顯示。您輸出的時間是您所需時間的正確UTC表示形式嗎?如果是這樣,那至少可以讓你知道「歐洲/伊斯坦布爾」不被認可。 FWIW,該時區在我剛剛檢查過的所有Debian,Ubuntu和Solaris系統上都能識別。 – Celada 2012-01-10 10:14:52

+0

下一次,將代碼放入代碼塊(每行前4個空格)。編輯器工具欄是你的朋友。 – Christian 2012-01-10 10:14:57

+1

你能描述一下*如何*時間不正確?太遲,太早...以及多少小時? – 2012-01-10 10:15:32

回答

0

如果你的PHP> = 5.2.0,那麼你可以使用DateTime對象:

$my_timezone = new DateTimeZone('America/Los_Angeles'); 
$far_away_timezone = new DateTimeZone('Europe/Istanbul'); 

$dt = new DateTime(date('Y-m-d H:i:s'), $my_timezone); 
$dt->setTimezone($far_away_timezone); 

echo $dt->format('Y-m-d H:i'); 

希望它能幫助。