我使用计划(cron作业)在服务器上运行Javascript代码。我需要每小时在每个时区检查一定时间(即上午8点)。以下是工作流程的示例
当前时间是13:00 UTC时间
作业运行并执行javascript代码(因为它按小时计划运行)
javascript函数检查当前时区(UTC)在7:58-8:02之间(4分钟的时间跨度是在时间延迟和时钟不准确的情况下)
代码发现(UTC-5:00)东部时间(美国和加拿大)目前是8:00并打印结果如'UTC-5:00'
然后,在下一个小时(14:00)再次重复同样的过程 - 它会发现(UTC-6)中部时间目前是8:00 AM
对此的任何帮助将不胜感激。请注意,我不需要任何作业调度的东西。我已经有了运行脚本所需的cron脚本。我正在努力的是Javascript部分。
答案 0 :(得分:1)
我看到的一个问题是你没有一个你关心的时区列表。事实上,我甚至没有看到在Javascript中获取官方(或非官方)时区列表的好方法。请注意,如果您每60分钟运行一次,您可能会错过“奇怪的”#39;像新德里这样的时区(相对于大多数时区,它们相隔30分钟)。所以第一步是以某种方式得到你关心的时区列表。我看到了两种方法:
制作一个时区列表 - 只是一个对象数组,或类似的东西,包含时区的名称及其对UTC的偏移量。然后,您可以通过构造Date对象并添加/减去这些预定义的偏移来进行检查。请参阅日期here的getMinutes(),getHours(),setMinutes(),setHours(),getUTCMinutes(),getUTCHours(),setUTCMinutes(),setUTCHours()函数。
使用moment.js库和他们拥有的timezone builder。我个人从未使用过这个图书馆,所以我对此并不了解。您还可以查看this nice map。