【问题标题】:Why is this date formatted with a different hour value?为什么这个日期使用不同的小时值格式化?
【发布时间】: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:
  • 这就是我的想法——因为我找不到任何问题。很高兴听到一切正常

标签: momentjs moment-timezone


【解决方案1】:

:facepalm: 我有一个旧版本的时刻时区,由于 2021 年时区更新不存在,它只是显示一个无效的小时。我更新了库(和数据库),一切都很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-19
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多