Si disponemos en forma separada del día, mes y año hay, una función que nos indica si se trata de una fecha válida:
boolean checkdate ( mes, dia, año)
Retorna verdadero si la fecha es válida, falso en caso contrario.
Implementemos un formulario que nos solicite el ingreso de una fecha:
<head> <title>Problema</title> </head> <body> <form action="pagina2.php" method="post"> Ingrese una fecha (dd/mm/aaaa): <input type="text" name="dia" size="2"> <input type="text" name="mes" size="2"> <input type="text" name="anio" size="4"> <br> <input type="submit" value="validar"> </form> </body> </html>
Y la página que procesa la fecha ingresada es:
<html> <head> <title>Problema</title> </head> <body> <?php if (checkdate($_REQUEST['mes'], $_REQUEST['dia'], $_REQUEST['anio'])) echo "La fecha ingresada es correcta"; else echo "La fecha no es válida"; ?> </body> </html>
En este programa llamamos a la función checkdate pasando los tres parámetros requeridos en el orden: mes, día y año.
Podemos validar previamente si se han cargado valores numéricos en cada control "text", esto llamando a la función is_numeric(variable). Retorna true si la variable almacena un número, falso en caso contrario.
El programa modificado quedará entonces:
<html> <head> <title>Problema</title> </head> <body> <?php if ( is_numeric($_REQUEST['dia']) && is_numeric($_REQUEST['mes']) && is_numeric($_REQUEST['anio']) ) { if (checkdate($_REQUEST['mes'], $_REQUEST['dia'], $_REQUEST['anio'])) echo "La fecha ingresada es correcta"; else echo "La fecha no es válida"; } else echo "La fecha no es válida"; ?> </body> </html>
Copiar el contenido de este cuadro de texto al VS Code y almacenarlo en la carpeta c:\xampp\htdocs con un nombre con extensión php.
luego abrir el navegador (Chrome, FireFox, IExplorer etc.) y en la barra de direcciones tipear:
http://localhost/pagina1.php (o el nombre del
archivo que le dió)