如何在PHP中设置时区

时间:2011-06-23 20:20:47

标签: php datetime timezone-offset

我有一个网站,其中包含不同国家/地区(不同时区)的商店列表,并且应该按工作时间显示商店是开放还是关闭。

我有javascript在未设置夏令时时获取DEFAULT时区GMT偏移量,将其置于mysql中,并且该部分正常工作。

我的时区是GMT + 1(现在它的夏令时活跃,所以现在是+1小时)

我使用php来改变区域:

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

时间到了晚上10点

GMT时间:晚上8点

此代码返回:晚上7点

所以它就像它增加1,它减少了,加上没有夏令时......

有人能告诉我这里发生了什么吗? 它是php bug还是服务器上的错误?

谢谢...

2 个答案:

答案 0 :(得分:2)

我正在笑,因为我最近有一个similar problem。不幸的是Etc / GMT时区已被弃用。他们打破。我的个人推荐?只需使用HH:MM或按城市设置(城市不需要夏令时调整!)

答案 1 :(得分:0)

也许日期('I')在这种情况下可能会有所帮助 除非有选项来定义查找列表[GMT偏移] - [时区名称]。然后可以使用DateTime \ DateTimeZone类调整时区。