function checkdate( month, day, year ) { // Validate a Gregorian date
//
// + original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
var myDate = new Date();
myDate.setFullYear( year, (month - 1), day );
return ((myDate.getMonth()+1) == month && day<32);
}
к сожалению не учитывает високосные даты =(
и приведенный пример "checkdate(2, 29, 2001);" дает true
Ошибка исправлена, теперь работает как нужно.
функцию можно еще упростить =) текущий вариант почему-то не захотел отрабатывать на моем хостинге... но на локальной машине работал как надо
поэтому пришлось привести функцию к такому виду:
function checkdate(month, day, year) {
var myDate = new Date(year, month-1, day);
return ((myDate.getMonth()+1) == month && day<32);
}
и все заработало как надо =)
Здравствуйте. Вот себе делал, может кому и пригодится:
//проверка Високосного года if(month==2 && day==29) { if(year%4==0 && (year%100!=0 || year%400==0)) //если Високосный else //если обычный (надпись вроде "В этом году 29 февраля нет") } else { //проверка обычного года var trueDate = new Date(); trueDate.setFullYear(year, (month-1), day); if(((trueDate.getMonth()+1) == month && day<32)) //если дата правильная else //если дата неправильная }