Validar una fecha con PHP sin expresiones regulares

Si quieres validar una fecha y no quieres usar expresiones puedes usar la siguiente función.
Lo que permite es validar cualquier fecha ingresada por el usuario, incluyendo aquellos formatos con distintos separadores, por ejemplo: “23/04/2009″ ó “23-04-2009″ ó “23.04.2009″.

Además permite tres formatos distintos:

  • Por defecto acepta el formato dd/mm/yyyy
  • Al definir el parámetro “$format” con el valor “mdy”, se validarán fechas con el formato: mm/dd/yyyy
  • Por último, si $format lo definimos como “ymd”, se validarán fechas del tipo: yyyy/mm/dd
    function datecheck($input,$format="")
    {
        $separator_type= array(
            "/",
            "-",
            "."
        );
        foreach ($separator_type as $separator) {
            $find= stripos($input,$separator);
            if($find<>false){
                $separator_used= $separator;
            }
        }
        $input_array= explode($separator_used,$input);
        if ($format=="mdy") {
            return checkdate($input_array[0],$input_array[1],$input_array[2]);
        } elseif ($format=="ymd") {
            return checkdate($input_array[1],$input_array[2],$input_array[0]);
        } else {
            return checkdate($input_array[1],$input_array[0],$input_array[2]);
        }
        $input_array=array();
    }

Ejemplos de uso:

$fecha= "24-09-2009";
 
if(datecheck($fecha)===false){
    echo "La fecha no es correcta";
}else{
    echo "La fecha es correcta";
}
// imprime "La fecha es correcta"
$fecha= "32-09-2009";
 
if(datecheck($fecha)===false){
    echo "La fecha no es correcta";
}else{
    echo "La fecha es correcta";
}
// imprime "La fecha no es correcta"

Entradas Relacionadas

Tags: ,

One comment

  1. Buen artículo, Kick

    Gracias por compartirlo.

Leave a comment