为什么 javaScript 允许创建日期,例如
invalidDate = new Date(2015,3,31);
在这里,我尝试创建一个 4 月 31 日的日期。相反,JavaScript 创建的日期为 2015 年 5 月 1 日星期五 00:00:00。我们应该在创建日期之前验证日期吗?
在某些情况下,当我们尝试解析无效日期时,它会执行相同的操作。当给定日期可能无效时,应该如何正确解析日期?
var invalidDate = new Date(2015, 3, 31);
alert(invalidDate);
最佳答案
您可以使用 Date API 创建日期并检查结果:
function makeDate(year, month, day) {
var d = new Date(year, month, day);
if (d.getFullYear() !== year || d.getMonth() !== month)
throw new Error("Invalid date");
return d;
}
如果该天不是给定月份的有效日期,则该月份将被调整;这是 Date API 的一项功能,可以轻松进行“日期数学计算”。如果上面的代码注意到输入值已被更正,则会抛出异常。
关于JavaScript 日期创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39412513/