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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了即使系统设置不正确,如何在JavaScript中找到正确的时区?相关的知识,希望对你有一定的参考价值。

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

答案

我不知道你想要捕获什么时间,但是如果它是用户将采取你的应用程序的动作你在0开始一个JS计时器,然后而不是固定的时间戳,你存储从零的偏移,提交所有到你的应用程序(以及捕获的总秒数)。

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

例如,如果他们在:1s,60s和120s执行操作并且应用程序的总时间为200秒,则可以执行以下操作:

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

这将为您提供正确的时间戳,让您随意更换时区。

以上是关于即使系统设置不正确,如何在JavaScript中找到正确的时区?的主要内容,如果未能解决你的问题,请参考以下文章

系统更新页面中找不到手动选择安装包怎么办?

google-cloud-sdk 安装在 CentOS /usr/local/bin 中找不到正确的 Python 2.7 版本

Javascript:在幻灯片中找不到错误

如果指定了邮政地址,如何为 Google Maps JavaScript API 版本 3 设置正确的标题?

VM虚拟机安装Linux Deepin,却在系统设置中找不到分辨率为1920*1080这项,求解如何将分辨率改为1080p

如何设置本地文件的 MIME 类型?