欢迎来到本周的 又一时区问题 专题:
我已经在 Stack Overflow 上阅读了不少文章,试图使用 moment.js 和 date.js 来实现我的需求,但自始至终一直感到沮丧。如果有人能帮忙或指出我无法找到的 SO 上的重复问题,那就太好了。
我有一个页面,其中会显示一系列时间,例如:7:28、7:38、7:48。我知道这些时间是上午还是下午。这些时间总是以美国/纽约为基准(它们不会随着夏令时的变化而改变,因为相应事件总是发生在那个时间,不考虑夏令时)。我们把它们称为“日程表”。我想要突出显示即将到来的时间。
我已经在 Stack Overflow 上阅读了不少文章,试图使用 moment.js 和 date.js 来实现我的需求,但自始至终一直感到沮丧。如果有人能帮忙或指出我无法找到的 SO 上的重复问题,那就太好了。
我有一个页面,其中会显示一系列时间,例如:7:28、7:38、7:48。我知道这些时间是上午还是下午。这些时间总是以美国/纽约为基准(它们不会随着夏令时的变化而改变,因为相应事件总是发生在那个时间,不考虑夏令时)。我们把它们称为“日程表”。我想要突出显示即将到来的时间。
- 对于生活在美国/纽约的人来说,这很简单。
- 对于生活在美国/洛杉矶的人来说,这也不太困难(假设我的逻辑没问题)。
- 我可以获取计算机在美国/洛杉矶的当前时间,将其转换为 UTC,然后确定美国/洛杉矶是否正在观察夏令时,以及美国/纽约当前应该是 -0400 还是 -0500,将其应用于 UTC 并进行比较。这会有点麻烦,因为你仍然需要处理一个基于美国/洛杉矶时间的日期,而不是实际更改 Date 对象的时区,但我有一种可靠的方法可以从 UTC 时间回滚(或前进)小时数。
然而,当我试图从一个根本不观察夏令时的计算机中确定是否正在观察夏令时时,会发生什么情况呢?
据我所知,JavaScript 只能为当前时区创建 Date 对象,然后对 DST 的任何确定都是基于该 Date 对象的。
我应该无动于衷吗?这些时间主要只与居住在美国/纽约的人相关。我只是想构建一个应用程序,以便从其他时区查看时是有意义的,在不观察夏令时的国家,当时间是凌晨 3 点,而在美国/纽约是下午 2 点时,“日程表”可以突出显示即将发生的是下午 2:05 而不是上午 3:05。