Funcion is_date()

calendario13/09/2007reloj23:33calendarioCategorías: PHP

Bueno, la acabo de hacer, y me apetecía compartirla. Imagino que habrá alguna otra por ahí, pero esta es mía, mi tesooooro :)

function is_date($fecha){
//Comprueba si la cadena introducida es de la forma D/m/Y (15/04/1920)
if (ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $fecha, $bloques)){
if (($bloques[2]>12)|($bloques[2]<1)){
return FALSE;
}
if (($bloques[2]==4)|($bloques[2]==6)|($bloques[2]==9)|($bloques[2]==11)){
$dias_mes = 30;
}else{
if ($bloques[2]==2){ //febrero
if((($bloques[3]%4==0)&(!($bloques[3]%100==0)))|($bloques[3]%400==0)){
$dias_mes = 29;
}else{
$dias_mes = 28;
}
}else{
$dias_mes = 31;
}
}
if (($bloques[1]<1)|($bloques[1]>$dias_mes)){
return FALSE;
}
}else{
return FALSE;
}
return TRUE;
}

8 comentarios

  1. Criticón — 14 septiembre 2007 16:50

    mmmmm
    existe una función checkdate, a la cual se le pasa como parámetros el día, mes y año por separado, y te devuelve si es correcta o no.

    http://php.net/checkdate

    Pero la tuya también está bien... xD

  2. TheKevin — 22 septiembre 2007 16:34

    Y además date('t',mktime(0,0,0,0,$bloques[2],$bloques[3]) te devuelve el número de días de ese mes y no hace falta tanto rollo xD.

  3. TheKevin — 22 septiembre 2007 16:35

    Perdon, falta cerrar el date() xD.

  4. RaFa...eL — 24 septiembre 2007 01:11

    Jeje, esta función es casi casi de las de Pascal que nos dio Alma en Programación I (por lo de es_bisiesto()).

  5. Pablo Hernández — 1 abril 2008 23:22

    jajaja, como se ve que no tienen ideales de programación... La función está buenísima, sirve para saber si el usuario ingresó bien la fecha, le voy a modificar un poco para agregarle la capacidad de elegir entre distintos formatos, felicidades, me ahorraste horas de tonteo-error... jajaja

  6. ANTONELA — 18 octubre 2008 00:09

    MUY BIEN ESTA DIBINO LO DEJO COMO EL MEJOR PROGRAMA QUE EÇHE VISTO EN EL MUNDO

  7. Abel — 14 noviembre 2008 10:59

    Gracias por la función, me ahorraste un tiempo de programarme una a medida :)

  8. Juan — 5 marzo 2013 16:50

    Excelente, me ahorraste time, gracias por compartir.Bendiciones

Los comentarios están cerrados.