Node.js 正在寻找检索当前时间为x的时区的方法

Node.js 正在寻找检索当前时间为x的时区的方法,node.js,datetime,timezone,iana,Node.js,Datetime,Timezone,Iana,我正在寻找一种方法来获得一个时区列表,其中当前时间是一个变量(它也必须依赖于DST) 例如,我需要将消息推送到本地时间为18:45的用户。我可以从数据库中获取按时区划分的用户列表。因此,我计划了一个预定的活动,每15分钟醒来一次,它需要检查当前18:45的时区,以便能够检索到正确的用户 我们的环境是NodeJS。 我考虑的方式最好是一个web服务或一些实用程序,它可以为我完成所有的工作,包括数据库的更新。但如果没有这样的选择,我可以处理不太方便的方式 提前感谢。这里有一个简单的方法来处理时刻时区

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

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

我们的环境是NodeJS。 我考虑的方式最好是一个web服务或一些实用程序,它可以为我完成所有的工作,包括数据库的更新。但如果没有这样的选择,我可以处理不太方便的方式


提前感谢。

这里有一个简单的方法来处理
时刻时区(
)(我相信它可以处理夏时制等事情,不是100%确定,但肯定会比从零开始做得更好。.查看他们的github repo以了解问题--这是一个复杂的主题):

var moment=require('moment-timezone');
var tm=力矩();
var toFind=tm.format('h:mm a');
var userZones=[“美国/洛杉矶”,“美国/纽约”];

对于(var i=0;iYes),矩时区实现了IANA时区数据库中的数据,因此DST得到了正确处理。多亏了,这或多或少是我最终所做的。令人恼火的是,需要提前获取所有可能与我的用户相关的时区。我使用了矩的.isBetween(…)因为我需要检查时间是否在5分钟之内。
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]);
}