A mi me resulta muy practico usar un calendario javascript. De esa forma no tengo que revizar que sea una fecha valida, porque solo pueden elegir una fecha valida...
Este es el que uso, es bastante completo y customizable:
http://www.dynarch.com/projects/calendar/
Saludos