如何使用预先保存的小时和当前utc日期找到与当前小时匹配的时区?假设我有一个每小时运行一次(UTC)的cronjob,我想获得每次运行cronjob时为上午10点的当前时区,因此例如,在UTC中可能是晚上9点,但对于"亚洲/喀布尔"可能是上午10点,下一个小时在UTC中可能是晚上10点,但对于时区"美国/洛杉矶"可能是上午10点。我正在使用moment.js。
输入:当前UTC日期,具体时间
输出:与特定小时匹配的时区
所以要获得时区列表,有另一个叫做moment-timezone的moment js库,问题的一部分是获得该列表。之后就很简单了:
getTimezonesFromDateAndSpecifiHour(findHourAndMinute){
const now = moment.utc()
const timezones = moment.tz.names()
let matchingTimezones
timezones.forEach((tz)=>{
const hour = moment.utc(now).tz(tz).format('H')
if(hour==findHourAndMinute){
matchingTimezones.push(tz)
}
})
return matchingTimezones
}