Listado completo de tutoriales

Temario del Tutorial43 - Validación de una fecha ingresada por teclado (checkdate)


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>


Problema resuelto.

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

pagina1.php

Ejecutar ejemplo

pagina2.php

Problema propuesto.

Confeccionar un formulario que solicite la carga de una fecha, disponer tres controles HTML de tipo "select" para elegir el día, el mes y el año. Validar si se trata de una fecha válida en la segunda página.

Solución
pagina1.php

Ejecutar ejemplo
pagina2.php

Retornar