为什么 Javascript 的 Date() 函数在 Safari 中因我的生日而中断?
Why does Javascript's Date() function break for my birthday in Safari?
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 输出检查输入,并且日期不再匹配)。我很想知道为什么会这样。
我的生日是 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 中得到解决。