Javascript 验证一个人的生日是否超过18岁
我试图验证一个人的生日是否超过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 = {
(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)