Premesso che per mia esperienza personale la gestione delle date è sempre difficoltosa, io fare l'operazione lato server (ASP/PHP) in modo d'essere sicuro del formato (vedi data Inglese) in oltre lato client se io apro l'orario lo modifico ha piacere, e tutti i controlli che tu fai sono bypassati.
Detto questo se proprio lo vuoi fare lato client io scaricherei un calendario (a tendina) poi modificherei la visualizzazione in modo che si vedano solo le date che disponibili, invece che verificare i dati inseriti.
![]()