JavaScript日期前后带有零的不一致

问题描述 投票:0回答:1

在JavaScript中将日期格式为“ YYYY-mm-dd”的日期字符串转换为Date对象时,出现了我不理解的输出不一致。当月份的一位数字开头为零时,我得到的时间不同。我希望有人可以向我解释一下。

这里是一个控制台代码段,用来显示我的意思,第一个是不一致的情况:

d = new Date('2020-01-09');
Wed Jan 08 2020 19:00:00 GMT-0500 (Eastern Standard Time)

d = new Date('2020-01-9');
Thu Jan 09 2020 00:00:00 GMT-0500 (Eastern Standard Time)

d = new Date('2020-1-9');
Thu Jan 09 2020 00:00:00 GMT-0500 (Eastern Standard Time)

d = new Date('2020-01-019');
Sun Jan 19 2020 00:00:00 GMT-0500 (Eastern Standard Time)

d = new Date('2020-01-09 EST');
Thu Jan 09 2020 00:00:00 GMT-0500 (Eastern Standard Time)

因此,当日期为两位数且第一个为零时,它给我的时间早五个小时,尤其是与时区相同的偏移量。在两位数的日期之前加零没有区别,在日期之前也没有区别。

注意最后一行,我使用相同的格式,但也要注意时区。这似乎可以解决问题。

有人可以解释为什么会这样吗?

javascript date
1个回答
0
投票

根据MDN,如果您传递的是非标准的日期字符串,则解析将采用UTC时区-这就是为什么您的时间显示5小时的差异

© www.soinside.com 2019 - 2024. All rights reserved.