【发布时间】:2015-01-01 16:58:59
【问题描述】:
我需要根据用户设置的一些时间策略来验证服务器端的某些事务。我看到的问题是所有政策都与用户时区有关。如果我只保留 GMT 偏移量,如果用户的时区转到 DST(夏令时),我会遇到问题。
我需要在用户端获取一个时区字符串,我应该能够使用它来获取新交易到达时的当前时间(例如:用户设置了一个政策来批准从下午 6 点到晚上 9 点的交易并且用户在德克萨斯州。创建新交易时,我需要验证它是否在德克萨斯州的下午 6 点/晚上 9 点之间)。
非常感谢!
【问题讨论】:
-
为什么不将所有时间存储为 UTC?那么你就不用关心夏令时、时区偏移等等(但仍然取决于用户的时钟是否准确)。
-
因为政策与用户的时间相关(例如:周日下午 6 点到晚上 9 点)。我需要检查这些时间段内是否发生了事件。
-
也将用户的时间转换为 UTC。这些东西在服务器上的处理比在客户端上要好得多。有一些库可以根据分析一年中不同时间的偏移量来检测用户的时区,但是这些库(就像所有客户端程序一样)依赖于为他们所在的时区设置的用户设备。否则,正如 Miroslav 建议的那样, 只使用字符串。
标签: javascript node.js timezone dst gmt