寻找一种方法来检索当前时间为x的时区

时间:2016-09-05 06:20:13

标签: node.js datetime timezone iana

我正在寻找一种获取时区列表的方法,其中当前时间是一个变量(它也必须与DST相关)。

例如,我需要将消息推送给当地时间为18:45的用户。我可以通过时区从我们的数据库中获取用户列表。因此,我计划每15分钟唤醒一次预定活动,它需要检查当前18:45的时区,以便能够找到合适的用户。

我们的环境是节点js。 我正在考虑的方式最好是一个Web服务或一些实用工具,包括来自iana timezones数据库的更新。但如果没有这样的替代方案,我可以处理不太方便的方法。

提前致谢。

1 个答案:

答案 0 :(得分:1)

以下是使用moment-timezone执行此操作的一种简单方法(我相信它可以处理夏令时等问题,而不是100%肯定 - 但肯定会比单独从头开始做得更好..看看他们的github回购问题 - 这是一个复杂的话题):

var moment = require('moment-timezone');
var tm = moment();

var toFind = tm.format('h:mm a');

var userZones = ['America/Los_Angeles', 'America/New_York'];
for (var i=0; i<userZones.length; i++) {
  var fmt = tm.tz(userZones[i]).format('h:mm a');
  if (fmt === toFind) console.log('matched zone: ' + userZones[i]);
}