Javascript 验证一个人的生日是否超过18岁

Javascript 验证一个人的生日是否超过18岁,javascript,jquery,validation,datetime,Javascript,Jquery,Validation,Datetime,我试图验证一个人的生日是否超过18岁,但这不起作用。这是我写的代码: (function ($) { $.fn.bootstrapValidator.i18n.age = $.extend($.fn.bootstrapValidator.i18n.age || {}, { 'default': 'Please enter a valid birthday' }); $.fn.bootstrapValidator.validators.age = {

我试图验证一个人的生日是否超过18岁,但这不起作用。这是我写的代码:

(function ($) {
    $.fn.bootstrapValidator.i18n.age = $.extend($.fn.bootstrapValidator.i18n.age || {}, {
        'default': 'Please enter a valid birthday'
    });

    $.fn.bootstrapValidator.validators.age = {
        html5Attributes: {
            message: 'message',
            minage: 'integer',
            separator: 'separator'
        },
        /**
         * Return true if the input value is a valid RIF.
         *
         * @param {BootstrapValidator} validator The validator plugin instance
         * @param {jQuery} $field Field element
         * @param {Object} options Can consist of the following keys:
         * - message: The invalid message
         * - minage: A integer number with minimum age
         * @returns {Boolean}
         */
        validate: function (validator, $field, options) {
            var value = $field;

            if (value === '') {
                return true;
            }

            // Check wether minage is integer or not
            if (!parseInt(options.minage)) {
                return false;
            }

            // Get the birthday
            var $date = value.val();
            var $split = $date.split(options.separator);

            var $dateFullYear = parseInt($split[2], 10);
            var $dateMonth = parseInt($split[1], 10);
            var $dateDay = parseInt($split[0], 10);

            var $tempDate = new Date($dateFullYear + options.minage, $dateMonth, $dateDay);

            console.log("$dateFullYear" + $dateFullYear);
            console.log("$dateMonth" + $dateMonth);
            console.log("$dateDay" + $dateDay);
            console.log("$tempDate" + $tempDate);

            if ($tempDate <= new Date()) {
                return true;
            } else {
                return false;
            }
        }
    };
}(window.jQuery));
我认为比较是错误的,或者我做错了什么,因为
today/now()
date验证为有效,这是错误的,关于我的代码有什么建议吗?有什么帮助吗


PS:该代码是我为BootstrapValidator库制作的自定义函数的一部分

这是非常不相关的,但是您在变量名上使用
$
是令人困惑的,当
field
是字符串时,
var value=field
是多余的。@meagar我用真实的代码更新了帖子,因为它是BootstrapValidator库的一部分,我没有看到任何错误。特别是由于您将$tempDate记录为being 2032并执行
new Date(2032,9,1)@adammerifield是的,没错,我找到了问题的原因,谢谢您的时间
$dateFullYear 2014
$dateMonth 9
$dateDay 1
$tempDate Fri Oct 01 2032 00:00:00 GMT-0430 (Venezuela Standard Time)