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