2

我正在寻找一种方法来获取当前时间是一个变量的时区列表(它也必须依赖于 DST)。

例如,我需要向当地时间为 18:45 的用户推送消息。我可以从我们的数据库中按时区获取用户列表。所以我计划了一个每 15 分钟唤醒一次的预定事件,它需要检查当前 18:45 所在的时区,以便能够检索到正确的用户。

我们的环境是node js。我正在考虑的方式最好是一个 Web 服务或一些为我完成这一切的实用程序,包括来自iana 时区数据库的更新。但如果没有这样的选择,我可以处理不太方便的方法。

提前致谢。

4

1 回答 1

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]);
}
于 2016-09-05T07:24:40.910 回答