javascript - 如何在 Javascript 中获取时区名称(PDT、EST 等)?

标签 javascript datetime timezone

这个问题在这里已经有了答案:





Getting the client's time zone (and offset) in JavaScript

(32 个回答)



Get timezone abbreviation using offset value

(2 个回答)


5年前关闭。




使用 Javascript,有没有办法根据用户的设备获取用户的时区名称(PDT、EST 等)?

我试过的代码:

const timezone = jstz.determine()
const userTimezone = timezone.name()

但我想取回用户在 PDT、EST 等中的时区名称,而不是 America/New_York。

最佳答案

使用 moment.jsmoment-timezone附加组件,您可以执行以下操作。无论浏览器或操作系统如何,结果都是一致的,因为缩略语在库提供的数据中。

示例结果来自设置为美国太平洋时区的计算机:

var zone = moment.tz.guess();            // "America/Los_Angeles"
var abbr = moment.tz(zone).format("z");  // either "PST" or "PDT", depending on when run

免责声明

时区缩写不可靠或不一致。有很多不同的lists of them ,并且有很多歧义,例如“CST”代表中央标准时间、古巴标准时间和中国标准时间。通常,您应该避免使用它们,并且永远不应该解析它们。

此外,moment-timezone 中的缩写来自 IANA TZ Database .在该数据的最新版本中,许多“发明”缩写已被数字偏移量取代。例如,如果您的用户的时区是 Asia/Vladivostok , 而不是得到 "VLAT"就像您在以前的版本中一样,您将获得 "+10" .这是因为缩写“VLAT”最初是tz数据库为了填充数据而发明的,并没有被该地区的人实际使用。请记住,缩写词也始终使用英语 - 即使在实际使用其他语言缩写词的区域也是如此。

关于javascript - 如何在 Javascript 中获取时区名称(PDT、EST 等)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40494995/

相关文章:

javascript - Shiny 的 DT : Freeze rownames while sorting?

javascript - 使用 angularjs 的 Google 通讯录 API

带有索引的 mysql 日期时间字段获得范围 'like' 与 'between and' 性能

php - 使用 php 将服务器时区更改为特定时区

mysql - 对时间戳列进行 SELECT 查询,返回 GMT,而不是设置的时区

javascript - 如何使用 jQuery 只删除表中的一行附加信息?

javascript - 更改 JavaScript 中的日期格式?

ios - NSDate 更改时区

php - "phpinfo(): It is not safe to rely on the system' s 时区设置...”

javascript - Jquery 延迟滚动到#ID