好的,
我有问题。我正在建立一个最终会持有大量客户数据记录的网站。因为客户端可以导出和导入他们的数据,所以我必须能够在站点和服务器中维护基于会话的时区。
现在我的服务器设置为GMT。当我在shell上运行date命令时,我发现,这在发布时是正确的。
Fri Mar 18 20:04:32 GMT 2011
然后当我做的时候 - 显示给了我,再次这是正确的。
Fri 18 Mar 2011 08:06:22 PM GMT
现在我告诉php将其时区更改为GMT-4(因为这是我在DST中的时区因素分析)
date_default_timezone_set('Etc/GMT-4');
echo date("m/d/Y g:i:s A T");
我得到03/19/2011 00:11:35 AM GMT-5完全错了,而不是花了5个小时的时间它增加了5个小时。
然后我这样做了:
date_default_timezone_set('Etc/GMT+4');
echo date("m/d/Y g:i:s A T");
我得到了03/18/2011 4:14:56 GMT + 4。哪个是正确的时间。 MySQL做同样的事情。似乎两者都想要反转时间调整。我在设置上遗漏了什么吗?
答案 0 :(得分:3)
不,我认为你误解了符号/语法。
这个想法是你设置+
,如果你想要到达的时区位于本初子午线的西边,你设置-
它就在它的东边。所以它实际上与您添加或带走的小时数无关,而是回到示例,GMT + 4:
格林威治以西的国家
这基本上是美国的东部边缘,他们在英格兰落后我们几个小时......以这种方式思考应该是有道理的。