gpt4 book ai didi

javascript - js中的字符串到日期转换器问题

转载 作者:行者123 更新时间:2023-12-01 16:18:07 25 4
gpt4 key购买 nike

我在 EST 时区的本地机器。

我正在尝试将日期字符串转换为 js 中的日期对象,但从日期对象中的日期字符串中获取前一天。

new Date('2020-04-03') 为此,我得到 Thu Apr 02 2020 20:00:00 GMT-0400(东部夏令时) 这个输出。

new Date('2020/04/03') 为此我得到 Fri Apr 03 2020 00:00:00 GMT-0400(东部夏令时) 这个输出。

console.log(new Date('2020-04-03'))
console.log(new Date('2020/04/03'))

我不知道它们之间有什么区别,谁能解释一下?

我该如何解决这个问题?

最佳答案

两次日期解析给你不同结果的原因是因为它触发了两种不同的日期处理模式。

在一种情况下,2020-04-03,它将日期视为 ISO 8601 的简化版本格式,如果未指定时区,则 JavaScript 在 UTC 时区中创建日期。

第二个日期 2020/04/03 不是官方支持的格式,因此 JavaScript 回退到特定于实现的日期解析,因此它甚至可能不一致浏览器。在这种情况下,它会选择使用您本地的时区。

The MDN article on Date.parse()详细解释了日期解析在 JavaScript 标准中的工作原理,以及在某些情况下浏览器中如何存在非标准行为。

简而言之,尽可能坚持使用 ISO 8601 日期是个好主意,这不仅是因为 JavaScript 以一致的方式处理它们,而且它们也很容易排序,而且它们在许多编程系统中得到广泛支持。

关于javascript - js中的字符串到日期转换器问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60983584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com