我为客户设置了一个网络应用。我相信服务器在美国。客户本人在悉尼。
他说他在带有时间戳字段的表中添加了记录,并将时间戳显示为2010-11-19 07:12:00
,但实际的本地时间为2010-11-20 13:12:00
。
所以他在记录的时间之前30 hours
。 这看起来不正确,偏移怎么可能超过24小时?我应该更改/使用什么,以便他看到正确的日期/时间?
编辑:
在插入记录之前,将当前时间加30小时是正确的方法吗?
答案 0 :(得分:1)
如果偏移是30小时,则罪魁祸首不可能是时区。或者至少,它不能只是 的罪魁祸首。没有更多细节,这是我能做的最好的。
答案 1 :(得分:1)
首先要检查服务器上的时间。确保这是正确的。
要解决此问题,您必须知道用户的偏移量,因此这需要记录在用户配置文件中,或者如果它对于整个应用程序是静止的,您可以设置服务器的时间以对应与他的时区。
另一个选择是使用PHP的DateTime Class。
另一种选择是使用某些Timezone Setting functions PHP优惠。
最后一个选项是设置timezone setting for MySQL这需要您向启动选项添加项目,因此您需要编辑MySQL的启动脚本。
答案 2 :(得分:1)
悉尼,澳大利亚是GMT + 10。美国东海岸是GMT-5。这是一个15小时的差异。
可能是编码错误,其中时区被纠正两次。