【发布时间】:2020-09-08 03:53:32
【问题描述】:
我在数据库中有三个日期。它们都代表下午 5 点的“真实用户时间”,这意味着在现实生活中,在这些时间戳上发生的事件将在下午 5 点发生:
1600117200000 (09/14/2020 @ 5:00pm (America/Toronto) - 09/14/2020 @ 9:00pm (UTC)1615240800000 (03/08/2021 @ 5:00pm (America/Toronto) - 03/08/2021 @ 10:00pm (UTC)1615842000000 (03/15/2021 @ 5:00pm (America/Toronto) - 03/15/2021 @ 9:00pm (UTC)
当我运行以下命令时,第三个日期显示为下午 4 点而不是下午 5 点。为什么?
moment(1600117200000).tz('America/Toronto').format('LLL')
-> "September 14, 2020 5:00 PM"
moment(1615240800000).tz('America/Toronto').format('LLL')
-> "March 8, 2021 5:00 PM"
moment(1615842000000).tz('America/Toronto').format('LLL')
-> "March 15, 2021 4:00 PM"
我可以理解为什么中间日期 (1615240800000) 会显示无效小时,因为它与我现在的夏令时不同,但第三个日期 (1615842000000) 与我在同一夏令时执行代码。
谢谢!
【问题讨论】:
-
简而言之,您是说这些日期应该是下午 5 点——不管夏令时如何?
-
是的。好吧,如果 3 月 8 日显示为下午 4 点(或下午 6 点?),我也许可以理解。但 3 月 15 日与 9 月 14 日处于同一夏令时。既然它们都是 UTC 时间晚上 9 点,为什么一个显示为下午 5 点,另一个显示为下午 4 点?
-
你能告诉我你正在使用的时刻 timezome 的 CDN 脚本吗?或者你正在使用 npm 包吗?
-
我使用的是旧版本的库。我升级了它(连同时区数据库),现在一切都很好。 :tada:
-
这就是我的想法——因为我找不到任何问题。很高兴听到一切正常