如何使用 momentjs 获取 3 个字母的时区?
How to get timezone in 3 letters using momentjs?
我正在使用时刻库使用以下代码获取时区
console.log(moment.tz.names())
这给我以下格式的结果
0: "Africa/Abidjan"
1: "Africa/Accra"
2: "Africa/Addis_Ababa"
3: "Africa/Algiers"
4: "Africa/Asmara"
5: "Africa/Asmera"
6: "Africa/Bamako"
我只需要得到类似
的缩写
moment 可以提供这样的灵活性吗,我也需要获得偏移量吗?
谢谢!!!
您可以通过快速 .map()
:
为您从 moment.tz.names()
获得的完整区域名称生成一个伴随列表
let abbrs = moment.tz.names().map((z) => moment.tz(z).zoneAbbr());
对于任何区域对象,.zoneAbbr()
给出区域缩写。
如果你想要偏移量,你可以改为调用 .utcOffset()
:
let offsets = moment.tz.names().map((z) => moment.tz(z).utcOffset());
或者两者兼得:
let zoneInfo = moment.tz.names().map((z) => {
let zone = moment.tz(z);
return {
abbr: zone.zoneAbbr(),
offset: zone.utcOffset()
};
});
您可以使用 moment.format(string) 通过传递 z
参数来获取缩写:
moment.tz(zone).format('z')
并通过传递 Z
参数进行偏移:
moment.tz(zone).format('Z')
console.log(
moment.tz.names().forEach(zone => {
console.log( moment.tz(zone).format('Z z') )
})
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.25/moment-timezone-with-data.min.js"></script>
请注意,z
格式标记不会始终显示缩写的时区名称,而是会显示每个区域的时间偏移,moment#zoneAbbr
.[=19 也是如此=]
我正在使用时刻库使用以下代码获取时区
console.log(moment.tz.names())
这给我以下格式的结果
0: "Africa/Abidjan"
1: "Africa/Accra"
2: "Africa/Addis_Ababa"
3: "Africa/Algiers"
4: "Africa/Asmara"
5: "Africa/Asmera"
6: "Africa/Bamako"
我只需要得到类似
的缩写moment 可以提供这样的灵活性吗,我也需要获得偏移量吗?
谢谢!!!
您可以通过快速 .map()
:
moment.tz.names()
获得的完整区域名称生成一个伴随列表
let abbrs = moment.tz.names().map((z) => moment.tz(z).zoneAbbr());
对于任何区域对象,.zoneAbbr()
给出区域缩写。
如果你想要偏移量,你可以改为调用 .utcOffset()
:
let offsets = moment.tz.names().map((z) => moment.tz(z).utcOffset());
或者两者兼得:
let zoneInfo = moment.tz.names().map((z) => {
let zone = moment.tz(z);
return {
abbr: zone.zoneAbbr(),
offset: zone.utcOffset()
};
});
您可以使用 moment.format(string) 通过传递 z
参数来获取缩写:
moment.tz(zone).format('z')
并通过传递 Z
参数进行偏移:
moment.tz(zone).format('Z')
console.log(
moment.tz.names().forEach(zone => {
console.log( moment.tz(zone).format('Z z') )
})
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.25/moment-timezone-with-data.min.js"></script>
请注意,z
格式标记不会始终显示缩写的时区名称,而是会显示每个区域的时间偏移,moment#zoneAbbr
.[=19 也是如此=]