para validar los datos es mejor usar javascript, este lenguaje fue creado precisamente para eso, validar con php consume innecesariamente tiempo de servidor.
te dejo este calendario en javascript, lo p'uedes poner en español y obtener la fecha en el formato que quieras.
demo bajar