Cómo validar una fecha en PHP: La función checkdate()

Un caso que nos podremos encontrar al desarrollar una web, es validar una fecha introducida por el usuario. Con esto me refiero a que por ejemplo no meta una fecha como 30 de febrero. Además, mostraré como crear una función que no sólo nos permitirá validar una fecha en PHP sino también restar fechas para obtener la edad.

Validar una fecha con checkdate()

Esta función devuelve true si el mes esta entre 12 y 1, el año entre 1 y 12767 y el día está entre 1 y el máximo correspondiente que varía en función del mes y el año. También tiene en cuenta los años bisiestos y las fechas se basan en el calendario Gregoriano.

Para poder emplear esta función tenemos que pasarle el mes, día y año, en ese orden.

Como  checkdate nos proporciona un amplio rango de fechas válidas, podremos agregar validación adicional sin complicaciones.

Cómo restar 2 fechas válidas

Vamos a poner el mítico ejemplo de la mayoría de edad pero, en vez de tener en cuenta solamente la edad mínima de mayoría de edad vamos a tener en cuenta la máxima que serían 122 años partiendo que la persona más longeva tiene esa edad.

Una vez que nos aseguramos que la fecha es válida con checkdate(), obtenemos la fecha de hoy con DateTime(). Antes de comprarla con la fecha introducida, tenemos que eliminar ceros que sobren empleando sprintf(). Una vez dado el formato empleamos la función estática de DateTime que la fecha tenga el formato inglés y así poder usarla en la resta.

Para realizar la resta empleamos la función Diff() que nos devolverá la diferencia en las unidades que queramos. En este caso, queremos la diferencia en años ($edad->y) y hacemos la comprobación de la de edad.

Espero que os haya gustado este post sobre cómo validar una fecha en PHP. A seguir picando 🙂