2010-06-02 72 views
0

我的日历在PST服务器上正常工作,但在生产服务器(EST)上,所有事件似乎都提前一天结束。我不确定它是否是时区问题,因为即使是3小时的差异,事件也应显示在适当的日期。时区问题?

有没有其他人遇到过这个问题?

+1

这是什么日历?这是一个编程问题? – bmargulies 2010-06-02 23:48:32

回答

1

这是穿越时区障碍时的典型问题。如果只有日期由数据库承载,但数据转换为时间戳并针对时区进行了调整,则会出现问题2010-06-02变为2010-06-02 00:00 EST变为2010-06-01 21:00 PST 。

0

如果事件提前一天结束,但不提前一天提前开始,那么很可能您的后端脚本没有获取或不尊重来自浏览器的结束日期时区信息。如果活动从午夜PDT(或美国东部时间凌晨3点)开始,但是在美国东部时间午夜(或PDT晚上9点)或者午夜格林威治标准时间(或PDT下午4点)结束,这可能会导致事件“尽早结束”。浏览器应该发送带有完整日期时间信息的所有事件(例如'6/3/2010 00:00:00 GMT-0800'),后端脚本也应该忠实地保存并报告这些信息。

我住在日本但在北美做了很多的事情,所以我不断地看到这个问题。我发现它确实有助于开发人员考虑GMT中的所有事件,而不是您自己的家庭时区 - 特别是如果您的任何用户居住在不同的时区内。 JS很好地处理时区信息(除了缺乏对夏令时的意识,它运行得非常好),而且大多数服务器都非常好地处理时区,所以你看到的大多数错误都与发送不完整日期信息的客户端脚本有关,并试图使做。

这也是值得检查,看看你的应用程序如何在2010年11月7日上午2:00,因为那一天是25小时长和2011年3月13日,因为那一天只有23小时长。切换到DST是一个魔鬼。