Данный код используется с Jquery Validate, чтобы проверить дату рождения на форме. Он проработал много лет, на рубеже 2016/17 года он потерпел неудачу, но только в IE и Chrome Firefox был в порядке.Jquery Проверить код даты в некоторых браузерах
После некоторого расследования я смог заставить его работать с 18 лет, а не 17. Я тогда понял, что это связано с тем, что в текущем году 2017 год, а минус 17 - 2000. Мое мнение таково, что в IE и Chrome это используя двухзначный год. Дата 01/01/00 недействительна. Дата прохождения: DD/MM/YYYY.
Я не уверен, как заставить четырехзначный год гарантировать, что это будет работать независимо от того, что не будет в следующем году на 18 лет.
> $.validator.addMethod("ValidDOB17", function (value, element) {
// checking whether the date entered is in correct format
var isValid = value.match(/^\d\d?\/\d\d?\/\d\d\d\d$/);
if (isValid) {
var today = new Date();
var minyear = new Date();
today.setYear(today.getYear() - 17);
minyear.setYear(today.getYear() - 82);
var DOB = Date.parse(value);
if (DOB >= today || DOB <= minyear) {
isValid = false;
}
return isValid;
}
}, "You must be aged over 17");
Использование '.getFullYear()' вместо '.getYear()' –