2011-06-23 100 views
2

我有一個網站,其中有不同國家(不同時區)的商店列表,當商店按營業時間開放或關閉時,它應顯示。如何在PHP中設置時區

我有JavaScript獲取DEFAULT時區格林尼治標準時偏移夏時制沒有設置時,把它放在mysql裏面,那部分工作正常。

我的時區爲GMT + 1(現在是夏令活躍,因此它現在1小時)

我使用PHP以此來改變區域:這裏

date_default_timezone_set('Etc/GMT+1'); 
echo date('h'); 

時間:10 PM

GMT時間:8 PM

而這個代碼回報:下午7點

所以它就像是它增加1,它減少,加上沒有夏令時...

有人可以告訴我在這裏發生了什麼? 它是PHP的錯誤或服務器上的錯誤嗎?

謝謝...

回答

2

目前我笑着,因爲我最近有一個similar problem。不幸的是,等等/ GMT時區已被棄用。他們打破。我個人的建議?只需使用HH:MM或城市設置(城市不需要夏令時調整!)

+0

我無法獲得城市,只有GMT偏移...而且我無法使用全球時間並通過偏移量增加/減少它,因爲它不正確,因爲有時夏令時會在我的服務器上設置,商店的地方是不是,否則... – SharkTheDark

+0

等/ GMT是全球時間+/-偏移。如果你的服務器的儲蓄時間設置不正確,你應該能夠解決我設置爲城市時區的問題。在這種情況下,它將適當地補償GMT。 – cwallenpoole

+0

是的,我注意到它有+/-逆轉...但仍然沒有夏令時間... 我可以爲每個GMT + X城鎮添加與該時區匹配的夏季時間並適用夏時制嗎?這是正確的嗎? – SharkTheDark

0

也許日期('I')可能有助於這種情況。
除非有定義查找列表[GMT偏移] - [時區名稱]的選項。然後可以使用DateTime \ DateTimeZone類來調整時區。

+0

日期('我')將顯示是否在夏令時或不是...而且它是0,就像時間一樣,否則會有+1計數... – SharkTheDark