【问题标题】:How do I get a list of timezone names of a browser如何获取浏览器的时区名称列表
【发布时间】:2015-04-02 13:30:35
【问题描述】:

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

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

谢谢。

【问题讨论】:

  • Javascript 没有时区的概念——只有一个偏移量。您必须使用 javascript 库(或您自己的硬编码值)将每个偏移量数字转换为一些文本(例如“0 = GMT”)。见joshowens.me/dealing-with-timezones-in-javascript
  • 因为我可以在显示给定日期时获得时区名称(我知道它来自浏览器,并且 Chrome 和 Firefox 返回不同的名称)我认为可以获得浏览器列表- 它转换系统时区的方式。

标签: ios windows google-chrome internet-explorer firefox


【解决方案1】:

ECMA-262, Edition 5.1当前版本的脚本语言通常称为 javascript,在我写这个答案的时候)没有获取时区列表的 API。 p>

我不知道有任何浏览器在 javascript 中提供此类 API。

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

使用 Date.prototype.getTimezoneOffset,您可以在几分钟内获得用户当前语言环境的 UTC 偏移量。一些浏览器 (Crome) 使用 Date.prototype.toString() 显示当前时区的名称,但有些不 (Firefox)。

【讨论】:

  • 感谢您的回答。 Firefox v36 正在显示名称,但我想在旧版本中我不能指望它。我无法验证该名称是否来自系统,但如果是这样的话,对我来说已经足够了。谢谢。
  • 我在 Windows 上运行 Firefox V36.0.4 并且只得到“Thu Apr 02 2015 14:07:06 GMT-0235”
  • 试试新的 Date().toString()
  • @RoyBen-Sasson 这正是我所做的。
猜你喜欢
  • 2016-02-04
  • 1970-01-01
  • 1970-01-01
  • 2014-01-03
  • 2014-06-26
  • 2011-10-15
  • 2013-10-02
  • 2017-11-30
  • 1970-01-01
相关资源
最近更新 更多