如何使用 momentjs 获取 3 个字母的时区?

Pro*_*fer 4 javascript timezone timezone-offset momentjs

我使用矩库使用以下代码获取时区

console.log(moment.tz.names())
Run Code Online (Sandbox Code Playgroud)

这给了我以下格式的结果

0: "Africa/Abidjan"
1: "Africa/Accra"
2: "Africa/Addis_Ababa"
3: "Africa/Algiers"
4: "Africa/Asmara"
5: "Africa/Asmera"
6: "Africa/Bamako"
Run Code Online (Sandbox Code Playgroud)

我只需要得到类似的缩写

在此输入图像描述

力矩可以提供这样的灵活性吗?我还需要偏移量吗?

谢谢你!!!

Poi*_*nty 5

moment.tz.names()您可以通过以下方式快速生成完整区域名称的伴随列表.map()

let abbrs = moment.tz.names().map((z) => moment.tz(z).zoneAbbr());
Run Code Online (Sandbox Code Playgroud)

对于任何区域对象,.zoneAbbr()给出区域缩写。

如果您想要偏移量,您可以调用.utcOffset()

let offsets = moment.tz.names().map((z) => moment.tz(z).utcOffset());
Run Code Online (Sandbox Code Playgroud)

或者两者都获得:

let zoneInfo = moment.tz.names().map((z) => {
  let zone = moment.tz(z);
  return {
    abbr: zone.zoneAbbr(),
    offset: zone.utcOffset()
  };
});
Run Code Online (Sandbox Code Playgroud)