即使系统设置不正确,如何在JavaScript中找到正确的时区?

时间:2018-08-31 18:38:02

标签: javascript timezone

我正在构建一个对时间敏感的Web应用程序,用户可以在本地时间输入与时间相关的数据,并将其以UTC格式保存在数据库中。到目前为止,该应用程序使用浏览器提供的时区(我假设使用操作系统提供的时区)。由计算机所有者手动设置系统时区时,会出现问题,并且可能是错误的。潜在的解决方案是从互联网获取正确的时区。但是我宁愿不要在某处调用API只是为了确定每次需要时的正确时区设置(除非没有其他选择)。有人可以建议解决此问题的正确方法吗?

1 个答案:

答案 0 :(得分:1)

我不知道您要捕获的时间是什么,但是如果用户要对应用执行此操作,请在0处启动JS计时器,然后将偏移量存储为零,而不是固定的时间戳,然后提交所有这些信息(连同捕获的总秒数)。

从那时起,您可以对发生事情时从服务器时间到锻炼的偏移进行反向工程,并使用客户端的本地时区设置将其转换为正确的时区。

例如,如果他们在1s,60s和120s上执行了操作,而您的应用上的总时间为200s,则可以执行以下操作:

first action is current_timestamp - 200s + 1s
second action is current_timestamp - 200s + 60s
third action is current_timestamp - 200s + 120s

这将为您提供正确的时间戳,以便您随意调换时区。