Поскольку вы не делали поля выбора для месяца, дня и года, вы должны указать формат даты. Вот код, который проверяет дату в формате ММ-ДД-ГГГГ, позволяя вводить 1-значный день или месяц, а также пробелы в начале и в конце:
var valid = false, match = false;
if (date) {
match = date.match(/^\s*(\d\d?)-(\d\d?)-(\d{4})\s*$/);
if (match) {
dateobj = new Date(match[3], match[1]-1, match[2]);
valid = dateobj.getFullYear() == match[3]
&& dateobj.getDate() == match[2]
&& dateobj.getMonth()+1 == match[1];
}
}
if (!match)
alert('Please enter date as MM-DD-YYYY');
if (!valid)
alert(date+' is an invalid date');
if (!match || !valid)
return false;
Вы все еще должны проверить, что дата в будущем. Так как вы сделали выбор за час и минуту, тест вроде
if (hour == undefined || !hour.length) {
alert('Please select hour'); return false;
}
if (minute == undefined || !minute.length) {
alert('Please select minute'); return false;
}
достаточно хорошо.