Utilise un widget js type http://jqueryui.com/demos/datepicker/
Pour la validation de la date, regarde comme php réagit (j'exécute depuis un shell mais les fonctions sont celles que tu peux utiliser dans ton code [à voir : Datetime]) :
$ php -r "echo date('d/m/y', mktime(0, 0, 0, 2, 1, 2012));" # 1er fev.
01/02/12
$ php -r "echo date('d/m/y', mktime(0, 0, 0, 2, 2, 2012));" # 2 fev.
02/02/12
$ php -r "echo date('d/m/y', mktime(0, 0, 0, 2, 30, 2012));" # 30 fev : erreur
01/03/12 # on passe au premier mars
$ php -r "echo date('d/m/y', mktime(0, 0, 0, 2, 35, 2012));" # 35 fev : erreur
06/03/12 # on passe au 6 mars