2011-06-23 32 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