格式时刻JS日期减去一天

时间:2019-09-13 01:43:58

标签: javascript angular date momentjs

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

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

例如,日期为 2019-09-12T00:00:00Z ,对于这个日期,时刻在给我: 9月11日

然后,为什么选择11而不是12?这与小时为00:00:00Z的事实有关吗?在那种情况下,应该如何受到威胁?

预先感谢

1 个答案:

答案 0 :(得分: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