Javascript 使用时区偏移量获取时区名称/列表

Javascript 使用时区偏移量获取时区名称/列表,javascript,timezone,momentjs,timezone-offset,Javascript,Timezone,Momentjs,Timezone Offset,我正在使用下面的代码进行时区偏移。 我想找出与时区偏移量关联的时区名称列表 new Date().getTimezoneOffset().toString()我认为您必须为此使用矩时区.js库 (此处链接:) 该方法应遵循以下思路: 导入库(注意:此库依赖于库-导入之前的库) 使用moment.tz.names()函数获取所有可用的时区位置 使用moment.tz.zone(name)函数获取 使用分区对象的偏移量属性获取位置偏移量 创建包含相同偏移名称的贴图 循环通过偏移(一个位置可以共享多个

我正在使用下面的代码进行时区偏移。 我想找出与时区偏移量关联的时区名称列表


new Date().getTimezoneOffset().toString()

我认为您必须为此使用
矩时区.js

(此处链接:)

该方法应遵循以下思路:

  • 导入库(注意:此库依赖于库-导入之前的库)
  • 使用
    moment.tz.names()
    函数获取所有可用的时区位置
  • 使用
    moment.tz.zone(name)
    函数获取
  • 使用分区对象的
    偏移量
    属性获取位置偏移量
  • 创建包含相同偏移名称的贴图
  • 循环通过偏移(一个位置可以共享多个偏移)并将它们添加到地图以及每个关键点的位置名称
  • 访问具有特定偏移量的地图并获取时区列表
  • 代码将如下所示:

    const tzNames=moment.tz.names();
    常量映射=新映射();
    for(TZNAME的常量名称){
    常数偏移=力矩.tz.区域(名称).offset;
    用于(偏移量的常量偏移量){
    如果(!map.has(偏移)){
    map.set(offset,newset());
    }
    map.get(偏移量)、add(名称);
    }
    }
    const currentOffset=新日期()。getTimezoneOffset();
    const offsetList=map.get(currentOffset);
    log('currentOffset:'+currentOffset);
    log('偏移列表大小:'+偏移列表.size);
    log('总不同偏移量:'+map.size);
    log('List items:');
    用于(偏移列表的常量项){
    控制台日志(项目);
    }
    
    
    这只能获取与当前偏移量匹配的时区-即,基于
    new Date()返回的“now”的时区。请参阅标记wiki中的“时区!=Offset”。最好使用
    Intl.DateTimeFormat().resolvedOptions().timeZone
    来收集客户端的时区ID。