Javascript检查特定时间并返回UTC时区

时间:2014-05-30 20:08:53

标签: javascript time timezone utc timezone-offset

我使用计划(cron作业)在服务器上运行Javascript代码。我需要每小时在每个时区检查一定时间(即上午8点)。以下是工作流程的示例

  1. 当前时间是13:00 UTC时间

  2. 作业运行并执行javascript代码(因为它按小时计划运行)

  3. javascript函数检查当前时区(UTC)在7:58-8:02之间(4分钟的时间跨度是在时间延迟和时钟不准确的情况下)

  4. 代码发现(UTC-5:00)东部时间(美国和加拿大)目前是8:00并打印结果如'UTC-5:00'

  5. 然后,在下一个小时(14:00)再次重复同样的过程 - 它会发现(UTC-6)中部时间目前是8:00 AM

  6. 对此的任何帮助将不胜感激。请注意,我不需要任何作业调度的东西。我已经有了运行脚本所需的cron脚本。我正在努力的是Javascript部分。

1 个答案:

答案 0 :(得分:1)

我看到的一个问题是你没有一个你关心的时区列表。事实上,我甚至没有看到在Javascript中获取官方(或非官方)时区列表的好方法。请注意,如果您每60分钟运行一次,您可能会错过“奇怪的”#39;像新德里这样的时区(相对于大多数时区,它们相隔30分钟)。所以第一步是以某种方式得到你关心的时区列表。我看到了两种方法:

  1. 制作一个时区列表 - 只是一个对象数组,或类似的东西,包含时区的名称及其对UTC的偏移量。然后,您可以通过构造Date对象并添加/减去这些预定义的偏移来进行检查。请参阅日期here的getMinutes(),getHours(),setMinutes(),setHours(),getUTCMinutes(),getUTCHours(),setUTCMinutes(),setUTCHours()函数。

  2. 使用moment.js库和他们拥有的timezone builder。我个人从未使用过这个图书馆,所以我对此并不了解。您还可以查看this nice map