Yo usaría listas, me parece más fácil.
Validaría en Javascript (eliminando/agregando días según corresponda) y después en PHP
Para hacer la lista dinámica en las FAQ de Javascript
http://www.forosdelweb.com/f13/faqs-javascript-105325-post325615/
Para validar la fecha en PHP usá checkdate
http://ar.php.net/manual/es/function.checkdate.php