我的日历在PST上的服务器上正常工作,但在生产服务器(EST)上,所有事件似乎都提前一天结束。我不确定这是否是时区问题,因为即使有3小时的差异,事件也应该在正确的日期显示。
还有其他人遇到过这个问题吗?
答案 0 :(得分:1)
这是穿越时区障碍时的典型问题。如果数据库仅携带日期,但数据转换为时间戳并针对时区进行调整则会出现问题2010-06-02成为2010-06-02 00:00 EST成为2010-06-01 21:00 PST 。
答案 1 :(得分:0)
如果事件提前一天结束但没有提前一天开始,则可能是您的后端脚本没有得到或者不尊重来自浏览器的结束日期时区信息。如果事件在太平洋夏令时午夜(或美国东部时间凌晨3点)开始,但在美国东部时间午夜(或太平洋夏令时间晚上9点)或格林威治标准时间午夜(或太平洋时间下午4点)结束,则可以解释“提前结束”的事件。浏览器应该发送包含完整日期时间信息的所有事件(例如'2010年6月3日00:00:00 GMT-0800'),并且后端脚本也会保存并忠实地报告此信息。
我住在日本,但在北美做了很多发展,所以我不断看到这个问题。我发现在GMT中考虑所有事件而不是你自己的家乡时区真的有助于开发 - 特别是如果你的任何用户生活在不同的时区。 JS很好地处理时区信息(除了缺乏对夏令时的认识,它可以很好地工作),并且大多数服务器都能很好地完成时区,因此您看到的大多数错误都与客户端脚本发送不完整的日期信息并尝试制作做。
在2010年11月7日上午2:00,自2011年3月13日那天长达25小时,从那天起只有23个小时的时间,也值得检查一下你的申请是如何运作的。转向夏令时是一个恶魔。