gpt4 book ai didi

javascript - 为什么 Javascript 的 Date() 函数在 Safari 中因我的生日而中断?

转载 作者:行者123 更新时间:2023-12-04 00:34:31 25 4
gpt4 key购买 nike

在 Safari 中运行的 Javascript 与我的生日有关。这有时会破坏我的表单验证(因为表单会使用 javascript 输出检查输入,并且日期不再匹配)。我很想知道为什么会这样。

我的生日是 1985 年 10 月 6 日。在 Javascript 中,我使用:

new Date(1985, 09, 06)

(请注意月份是零索引的,但日期和年份不是。)

// My birthday
console.log("1985, 09, 06: " + new Date(1985, 09, 06))

// One day earlier/later
console.log("1985, 09, 07: " + new Date(1985, 09, 07))
console.log("1985, 09, 05: " + new Date(1985, 09, 05))

// One month earlier/later
console.log("1985, 10, 06: " + new Date(1985, 10, 06))
console.log("1985, 08, 06: " + new Date(1985, 08, 06))

// One year earlier/later
console.log("1986, 09, 06: " + new Date(1986, 09, 06))
console.log("1984, 09, 06: " + new Date(1984, 09, 06))

在 Safari 中运行的结果是:

// My birthday (note the day is wrong, and the time is 11pm)
Sat Oct 05 1985 23:00:00 GMT+1000 (AEST)

// One day earlier/later
Mon Oct 07 1985 00:00:00 GMT+1100 (AEDT)
Sat Oct 05 1985 00:00:00 GMT+1000 (AEST)

// One month earlier/later
Wed Nov 06 1985 00:00:00 GMT+1100 (AEDT)
Fri Sep 06 1985 00:00:00 GMT+1000 (AEST)

// One year earlier/later
Mon Oct 06 1986 00:00:00 GMT+1100 (AEDT)
Sat Oct 06 1984 00:00:00 GMT+1000 (AEST)

https://jsfiddle.net/27bupLr9/

在 Chrome 中,我的生日是正确创建的:

console.log(new Date(1985, 09, 06))
Sun Oct 06 1985 00:00:00 GMT+1000 (AEST)

最佳答案

这已在 macOS High Sierra 中得到解决。

关于javascript - 为什么 Javascript 的 Date() 函数在 Safari 中因我的生日而中断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31989265/

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