I messaggi d'errore li ho personalizzati, ad esempio se si immette 30 febbraio catturo il messaggio di mysql e stampo a video "La data inserita non è valida".

Il controllo sulla data l'ho lasciata a mysql, niente javascript.