Foros del Web » Programando para Internet » PHP »

validar fecha

Estas en el tema de validar fecha en el foro de PHP en Foros del Web. Hola... Cómo puedo validar diferentes formatos de fecha en el mismo control? Por ejemplo: MM/dd/YYYY 05/23/2003 dd-m-yy 05-mayo-03 Gracias...
  #1 (permalink)  
Antiguo 19/09/2003, 01:32
 
Fecha de Ingreso: febrero-2003
Mensajes: 165
Antigüedad: 14 años, 10 meses
Puntos: 0
validar fecha

Hola...

Cómo puedo validar diferentes formatos de fecha en el mismo control?

Por ejemplo:

MM/dd/YYYY
05/23/2003

dd-m-yy
05-mayo-03

Gracias
  #2 (permalink)  
Antiguo 19/09/2003, 10:30
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues .. lo primero que tienes que hacer es "desglosar" esos formatos de fecha en sus correspondientes "dia", "mes" y "año" ..

Ese "desglose" lo puedes hacer con la función explode() al caracter "-" o "/" que són los dos separadores que usas en los ejemplos que distes ..

Una vez que tengas dicho "desglose" hecho, en el caso de la segunda fecha que tienes un "mes" como "texto" .. debes de obtener su numero correspondiente en el calendario ..

Para esto último puedes usar un array asociativo del tipo:
$meses=array("enero"=>1,"febrero"=>2, ... etc ...);

Con ese array puedes obtener fácilmente el numero que corresponde a tu més que tienes en "texto" .. Ejemplo:

$mes="mayo";
echo $meses[$mes];

A todo esto le hará falta algo de lógica para ver si tu cadena con tu fecha (string) contiene algún "-" o "/" y en consecuencia aplicar uno u otro explode() al caracter que corresponda ... Averigüar si una cadena contiene un caracter lo puedes hacer con strpos()

El objetivo de todo esto es tener tus fechas en formato "numerico" y "separadas" como ya mencioné para poder darle como parámetros a la función checkdate() que te valida si una fecha es correcta o no (según calendario).

Y .. si todo esto haces una función que acepte como parámetro tu fecha (en string, cadena) y devuelva un true/false (bajo un return ..) ya tienes tu "control" ..

explode()
http://www.php.net/manual/es/function.explode.php

strpos()
http://www.php.net/manual/es/function.strpos.php

checkdate()
http://www.php.net/manual/es/function.checkdate.php

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:07.