PHP - 如何迎合时区

时间:2010-11-20 02:51:11

标签: php mysql timezone

我为客户设置了一个网络应用。我相信服务器在美国。客户本人在悉尼。

他说他在带有时间戳字段的表中添加了记录,并将时间戳显示为2010-11-19 07:12:00,但实际的本地时间为2010-11-20 13:12:00。 所以他在记录的时间之前30 hours这看起来不正确,偏移怎么可能超过24小时?我应该更改/使用什么,以便他看到正确的日期/时间?

编辑:
在插入记录之前,将当前时间加30小时是正确的方法吗?

3 个答案:

答案 0 :(得分:1)

如果偏移是30小时,则罪魁祸首不可能是时区。或者至少,它不能只是 的罪魁祸首。没有更多细节,这是我能做的最好的。

答案 1 :(得分:1)

首先要检查服务器上的时间。确保这是正确的。

要解决此问题,您必须知道用户的偏移量,因此这需要记录在用户配置文件中,或者如果它对于整个应用程序是静止的,您可以设置服务器的时间以对应与他的时区。

另一个选择是使用PHP的DateTime Class

另一种选择是使用某些Timezone Setting functions PHP优惠。

最后一个选项是设置timezone setting for MySQL这需要您向启动选项添加项目,因此您需要编辑MySQL的启动脚本。

答案 2 :(得分:1)

悉尼,澳大利亚是GMT + 10。美国东海岸是GMT-5。这是一个15小时的差异。

可能是编码错误,其中时区被纠正两次。