首页 > 解决方案 > moment.tzguess() 的所有可能结果是什么?

问题描述

在 moment.js 中,调用:

moment.tz.guess();

将返回 IANA 时区标识符,例如美国太平洋时区的 America/Los_Angeles。它记录在这里

moment.tz.names();

将返回 IANA 时区标识符列表。

我的问题是

是否moment.tz.names();包含调用的所有moment.tzguess();可能结果?我正在尝试获取所有可能结果的列表moment.tz(guess);

标签: javascriptdatetimetimezonemomentjs

解决方案


moment.tz.names返回 moment.tz 数据中的所有 IANA 代表位置(有近 600 个)。guess提供的名称应该在列表中,除非它来自 Intl 对象并且包含不在 moment.tz 数据中的名称。

您还可以从IANAWikipedia获取所有 IANA 代表位置的列表(请注意,Wikipedia 的列表不具有权威性,只是方便并且包括标准和夏令时的当前偏移量)。

let repLoc = moment.tz.guess();
let allLoc = moment.tz.names();
console.log('Your IANA representative location: ' + repLoc);
console.log('In timezone data? : ' + allLoc.includes(repLoc));
console.log('All timezones:\n' + allLoc.join('\n'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.28/moment-timezone-with-data.min.js"></script>


推荐阅读