代码之家  ›  专栏  ›  技术社区  ›  Sredny M Casanova

格式矩js日期减短一天

  •  1
  • Sredny M Casanova  · 技术社区  · 5 年前

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

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

    例如,日期是 2019-09-12t00:00:00Z 对于这一天,时刻给了我: 11九月

    那么,为什么是11而不是12?这与时间是00:00:00Z有关吗?在这种情况下,应该如何威胁?

    提前谢谢

    1 回复  |  直到 5 年前
        1
  •  1
  •   Phoenix    5 年前

    是的,这几乎是肯定的,因为它正在格式化当前时区中的日期,但原始时间是用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
    

    VS与 .utc :

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