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

标签 javascript time timezone utc timezone-offset

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

  1. 目前为 UTC 时间 13:00

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

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

  4. 代码发现 (UTC-5:00) 东部时间(美国和加拿大)当前为 8:00,并打印类似“UTC-5:00”的结果

  5. 然后,在下一小时 (14:00) 再次重复相同的过程 - 会发现 (UTC-6) 中部时间当前为上午 8:00

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

最佳答案

我发现的一个问题是您没有您关心的时区列表。事实上,我什至没有看到在 Javascript 中获取官方(或非官方)时区列表的好方法。请注意,如果您每 60 分钟运行一次,您可能会错过“奇怪”的时区,例如新德里的时区(它们相对于大多数时区有 30 分钟的偏差)。因此,第一步是以某种方式获取您关心的时区列表。我看到有两种方法:

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

  2. 使用 moment.js 库和这个 timezone builder他们有。就我个人而言,我从未使用过这个库,所以我对它了解不多。您还可以查看this nice map .

关于Javascript 检查特定时间并返回 UTC 时区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23962640/

相关文章:

java - 线程是否足够可靠以计算秒数?

go - 带和不带空白标识符的 Golang 计时

mysql - 当我直接从 MySQL 获取时,NodeJS 响应 MySQL 时区不同

javascript - 程序到 2D Array 复杂对齐

javascript - 为什么我无法访问设置?

javascript - 如何用汉堡包按钮替换固定顶部导航?

javascript - 区分东京和首尔时区

javascript - 如何将这个 IIFE 重写为 ES6 类?

在特定时区将 time_t 转换为 tm

datetime - 为什么 R 不能将 'CST' 识别为有效时区?