【问题标题】:Getting Olson timezone ID information from browser via javascript [duplicate]通过javascript从浏览器获取奥尔森时区ID信息[重复]
【发布时间】:2012-05-02 15:11:39
【问题描述】:

可能重复:
Javascript/PHP and timezones

可以从客户端机器上的 javascript 获取 Olson 时区 ID,例如(美国/纽约)。我知道 PHP 可以通过时区对象来做到这一点,就像这样。 $timezone->getLocation(); JS 有类似的功能吗?

我知道您可以获取客户端的时区偏移量,如下所示: var curdate = new Date(); var offset = curdate.getTimeZoneOffset();

但我需要 Olson ID 提供的更详细的信息。感谢您的帮助。

【问题讨论】:

    标签: javascript timezone


    【解决方案1】:

    您不能在 JavaScript 中直接访问时区。但是,您可以测量在几个不同的特定日期报告的偏移量,以通过将常规时间和夏令时与区域数据库进行比较来推断正在使用的确切时区。 a jsTimezoneDetect library 可以为您完成大部分工作。

    【讨论】:

    • 这个机制可以让你得到一个当前等价的时区,但它实际上并没有得到真正的时区。
    • 这是真的,但是考虑到您可以在每次运行 JS 时重新同步并始终找到新的等效区域,这对于几乎所有用途来说应该足够了。
    • 我想这取决于您想要使用时区的目的。我正在考虑用户输入时间的Web应用程序场景,并且一些JS代码还提供时间的时区,以便服务器可以明确地解释它。在这些情况下,我认为这种机制是不够的,尤其是对于未来的时间,在这种情况下,实时时区的 DST 规则将来可能会改变。
    • @Sam,如果您希望您的时间始终正确显示,那么只有一种方法:将所有内容存储在 UTC 中,并使用答案中描述的方法来推断当前区域以在用户的​​本地时间在 UI 中显示时间.
    • @Sam,对时区的大多数更改都是已知的,并在各自的环境/操作系统中提前合理地更新,因此对于大多数实际目的,这将得到正确和透明的处理。如果用户碰巧设置了未来几年的约会,总是有“编辑”按钮。
    猜你喜欢
    • 2012-08-24
    • 2015-02-12
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多