2015-04-02 56 views
-4

我想获取系统可用时区的浏览器特定时区名称(不同浏览器显示每种系统设置的不同文本)。我在编写console.error(new Date())时需要“()”中时区的确切字符串,但不仅仅是我当前的设置,而不需要每次更改我的操作系统设置并重新启动浏览器。如何获取浏览器的时区名称列表

AFAIK js库使用自己的名称列表来解决这个问题,但结果名称与浏览器时区名称不同。我需要这个名字,因为浏览器会写它。

谢谢。

+1

JavaScript没有时区的概念 - 只有偏移号码。您必须使用JavaScript库(或您自己的硬编码值)将每个偏移号码转换为一些文本(例如“0 = GMT”)。请参阅http://joshowens.me/dealing-with-timezones-in-javascript/ – 2015-04-02 13:46:55

+0

由于我可以在显示给定日期时获取时区名称(我知道它来自浏览器,Chrome和Firefox返回不同的名称),因此我认为有可能获得浏览器列表 - 它转换系统时区的方式。 – RoyBS 2015-04-02 13:49:45

回答

1

ECMA-262, Edition 5.1当前版本的脚本语言俗称javascript,当时我写这个答案)没有API来获取时区列表。

我不知道有任何浏览器在JavaScript中有这样的API可用。

我甚至不确定任何浏览器内部都有一个时区列表。浏览器可能会从操作系统获取当前时区的名称。

使用Date.prototype.getTimezoneOffset获取用户当前语言环境的UTC分钟偏移量。某些浏览器(Crome)使用Date.prototype.toString()显示当前时区的名称,但有些浏览器不支持(Firefox)。

+0

谢谢你的回答。 Firefox v36显示的名称,但我想我不能指望它在旧版本中。我无法验证名称是从系统中获取,但如果是这样,它足够我。谢谢。 – RoyBS 2015-04-02 14:32:25

+0

我在windows上运行Firefox V36.0.4并且只获得“Thu Apr 02 2015 14:07:06 GMT-0235” – some 2015-04-02 16:52:40

+0

尝试新的日期()。toString() – RoyBS 2015-04-05 06:25:13

相关问题