我想获取系统可用时区的浏览器特定时区名称(不同浏览器显示每种系统设置的不同文本)。我在编写console.error(new Date())时需要“()”中时区的确切字符串,但不仅仅是我当前的设置,而不需要每次更改我的操作系统设置并重新启动浏览器。如何获取浏览器的时区名称列表
AFAIK js库使用自己的名称列表来解决这个问题,但结果名称与浏览器时区名称不同。我需要这个名字,因为浏览器会写它。
谢谢。
我想获取系统可用时区的浏览器特定时区名称(不同浏览器显示每种系统设置的不同文本)。我在编写console.error(new Date())时需要“()”中时区的确切字符串,但不仅仅是我当前的设置,而不需要每次更改我的操作系统设置并重新启动浏览器。如何获取浏览器的时区名称列表
AFAIK js库使用自己的名称列表来解决这个问题,但结果名称与浏览器时区名称不同。我需要这个名字,因为浏览器会写它。
谢谢。
ECMA-262, Edition 5.1(当前版本的脚本语言俗称javascript,当时我写这个答案)没有API来获取时区列表。
我不知道有任何浏览器在JavaScript中有这样的API可用。
我甚至不确定任何浏览器内部都有一个时区列表。浏览器可能会从操作系统获取当前时区的名称。
使用Date.prototype.getTimezoneOffset获取用户当前语言环境的UTC分钟偏移量。某些浏览器(Crome)使用Date.prototype.toString()显示当前时区的名称,但有些浏览器不支持(Firefox)。
JavaScript没有时区的概念 - 只有偏移号码。您必须使用JavaScript库(或您自己的硬编码值)将每个偏移号码转换为一些文本(例如“0 = GMT”)。请参阅http://joshowens.me/dealing-with-timezones-in-javascript/ – 2015-04-02 13:46:55
由于我可以在显示给定日期时获取时区名称(我知道它来自浏览器,Chrome和Firefox返回不同的名称),因此我认为有可能获得浏览器列表 - 它转换系统时区的方式。 – RoyBS 2015-04-02 13:49:45