javascript - 日期验证 - 如何解决 Javascript 的自动更正日期问题?

标签 javascript jquery validation date

我想通过 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/

相关文章:

.net - 确认框始终首先显示(javascript、jQuery、.Net)

javascript - JQuery:Gowalla 如何执行它的 "slide"效果?

javascript - 元素未定义 Javascript 错误

javascript - Emacs 上的 js-comint 模式 : NoClassDefFoundError

php - 使用 PHP 从数据库中预填充 token 输入文本框中的值

c# - 页面重新加载时触发自动完成

javascript - 用于计算返回文档中唯一 ID 的 Mongo 聚合速度很慢

jquery - 如何使用 jQuery Validate 插件验证具有多个 div 的表单?

javascript - "Not Equal"符号在 Javascript 表单验证中无法识别

validation - 如何根据 facelet-taglib 验证 xhtml 中的标签