Во первых на воод даты нужно поставить селектор даты. Это реально поможет пользоватеям вводить дату без ошибок.
При вводе данных рукой нужно сделать фильтр на ввод данных что бы в другом формате было нельзя ввести. Использовать что то типа маски ввода. Есть готовые скрипты маски ввода.
Если нужно проверить то тебе нужно проверить строку а не дату. Можно проверить регуляркой. 30 февраля это валидная дата. Так как это 1е или 2е марта в реале. Например как ты получишь какой день последний в феврале? Ты введшь 0 марта. Это будет последний день ферраля не важно 28 или 29 дней в месяце.
Так что технология проверки дат, лежит в основном в технологии ввода даты.