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ó)