我想通过 Javascript
验证日期并找到了这个很好的答案:
https://stackoverflow.com/a/1353711/3391783
但是当我尝试使用它来验证日期时,Javascript
似乎会通过采用最接近的有效日期来自动更正我的日期。因此,即使 2014-11-31
不是有效日期(Javascript
月份从 0
开始),这也会返回 true
>,因此 10
等于 11 月):
function isValidDate(d) {
if ( Object.prototype.toString.call(d) !== "[object Date]" )
return false;
return !isNaN(d.getTime());
}
var test_date = new Date(2014, 10, 31);
console.log( test_date );
console.log( isValidDate(test_date) );
似乎创建日期
会自动将其切换为2014-12-01
,这是一个正确的日期。
但我希望能够验证用户输入而不更改它。
那么如何在 Javascript
中创建无效的 new Date()
呢?
还是有更简单的方法来做到这一点?
最佳答案
您可以使用 Date 对象中的自动更正来验证日期。只需根据 Date 对象中的内容检查输入即可:
var y = 2014, m = 10, d = 31;
var test_date = new Date(y, m, d);
var valid =
test_date.getFullYear() == y &&
test_date.getMonth() == m &&
test_date.getDate() == d;
document.write(valid);
关于javascript - 日期验证 - 如何解决 Javascript 的自动更正日期问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26971311/