【问题标题】:format moment JS date substracts one day格式化时刻 JS 日期减去一天
【发布时间】:2020-01-14 21:37:24
【问题描述】:

我目前正在使用 moment.js,但在将日期格式化为 DD MMM 时遇到了问题,因为它给我的时间比原来的日期少了一天。我正在使用下一行进行转换:

moment(date).format('DD MMM')

例如,日期是 2019-09-12T00:00:00Z,对于这个日期,时刻给我:11 sept

那么,为什么是 11 而不是 12?这与小时为 00:00:00Z 的事实有关吗?那样的话,应该怎么威胁呢?

提前致谢

【问题讨论】:

    标签: javascript angular date momentjs


    【解决方案1】:

    是的,这几乎可以肯定,因为它正在格式化您当前时区的日期,但原始时间以 UTC 表示 - 末尾的 Z 表示“与 UTC 的零时区偏移”。作为参考,带有时区的日期,而不是Z,最后会出现-06:00

    我相信您可以使用 moment.utc 方法解决您的问题,该方法会导致打印该日期的内容以 UTC 而不是您当地的时区。

    比较不带.utc 的打印日期(包括时区):(我的时区是UTC -6)

    console.log(moment('2019-09-12T00:00:00Z').format('DD MMM Z'));
    => 11 Sep -06:00
    

    .utc 相比:

    console.log(moment.utc('2019-09-12T00:00:00Z').format('DD MMM Z'));
    => 12 Sep +00:00
    

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 2015-06-21
      • 1970-01-01
      • 2020-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-02
      相关资源
      最近更新 更多