Hola,
Cita: Me dá error cuando meto texto, en la línea "if(checkdate ($mes,$dia,$año)){"
¿Cual es el mensaje de error? ¿A que te refieres 'con cuando meto texto'? Pon un ejemplo.
Cita: Otra cosa, imagina que me meten la entrada: 2004-1-1 Esa entrada debería de dar error ya que quiero el formato de dos dígitos siempre para mes y día, y cuatro para año, eso no lo hace esa función, así que me dá que necesito algo de comprobación de formato...
Esa fecha es una fecha valida. Si lo que quieres es forzar el numero de digitos, tendras que validar el formato con expresiones regulares.
Saludos.