Foros del Web » Programando para Internet » PHP »

Validar fecha dd/mm/yy

Estas en el tema de Validar fecha dd/mm/yy en el foro de PHP en Foros del Web. Hola. Quiero obligar al usuario a introducir la fecha como dd/mm/yy. Para ello, de momento, he creado una función que hace lo siguiente. Comprueba que: ...
  #1 (permalink)  
Antiguo 16/07/2008, 11:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Validar fecha dd/mm/yy

Hola. Quiero obligar al usuario a introducir la fecha como dd/mm/yy. Para ello, de momento, he creado una función que hace lo siguiente. Comprueba que:

- Tiene 8 caracteres.
- Tiene un total de 2 caracteres "/".
- El carácter "/" está en las posiciones 3ª y 6ª.
- Es una fecha válida según calendario gregoriano.

El código es este:

Código PHP:
function comprobar_fecha($fecha_recibida){
    
    
$dia=substr($fecha_recibida,0,2);
    
$mes=substr($fecha_recibida,3,2);
    
$anio=substr($fecha_recibida,6,2);
    
    if ((
strlen($fecha_recibida) == 8) && (substr_count($fecha_recibida,"/") == 2) && substr($fecha_recibida,2,1) == "/") && substr($fecha_recibida,5,1) == "/") && checkdate($mes$dia$anio)) {
        return 
TRUE;
    else
        return 
FALSE;
    }


Ni siquiera sé si funciona. Quería ver si alguien puede echarle un vistazo para ver si funcionaría bien y también saber qué puedo hacer para que al perder el enfoque del campo de texto de un formulario, si fracasa la validación, muestre un mensaje recordando que ha introducido mal la fecha, sin tener que abandonar la página ni perder el resto de datos del formulario.

Gracias.
  #2 (permalink)  
Antiguo 16/07/2008, 12:14
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Respuesta: Validar fecha dd/mm/yy

Hi !

Código PHP:
    function compruebaFecha($fecha) {
        
$chars strlen($fecha);
        
        if (
$chars == 10) {
            
$tmp explode("/"$fecha);
            
// La función Checkdate (Hay que leerse el manual :P) chequea si una fecha es valida.
            // solo hay que pasarle los parametros correctos, MM / DD / YYYY
            
if (checkdate($tmp[1], $tmp[0], $tmp[2])) {
                return 
true;
            }else{
                return 
false;
            }
        }else{
            return 
false;
        }
    } 
Creo que lo de evaluar la posición de los "/" no es necesaria, primero se hará un explode con ese separador, si la fecha llega mal a la parte del "checkdate()" saldrá del if y no la validará.

Espero te sirva :)
-ByE-
__________________
--
Mi Portfolio Online! Visitalo!
--
  #3 (permalink)  
Antiguo 16/07/2008, 12:16
 
Fecha de Ingreso: julio-2007
Ubicación: /home/victor
Mensajes: 114
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Validar fecha dd/mm/yy

Podrias usar un calendario con php o javascript

Saludos..
  #4 (permalink)  
Antiguo 16/07/2008, 13:17
 
Fecha de Ingreso: mayo-2008
Mensajes: 63
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Validar fecha dd/mm/yy

Hermanito yo tengo algo muy parecido y si soluciono eso termino mi proyecto universitario ¿Cual es el nombre de la caja de texto? (en este caso es $fecha)

ayudenme
  #5 (permalink)  
Antiguo 16/07/2008, 13:24
 
Fecha de Ingreso: mayo-2008
Mensajes: 63
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Validar fecha dd/mm/yy

De que manera utilizo esa funcion por favor expliquenme, estoy utilizando php y postgres
  #6 (permalink)  
Antiguo 16/07/2008, 13:25
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: Validar fecha dd/mm/yy

para validar los datos es mejor usar javascript, este lenguaje fue creado precisamente para eso, validar con php consume innecesariamente tiempo de servidor.

te dejo este calendario en javascript, lo p'uedes poner en español y obtener la fecha en el formato que quieras.

demo
bajar
__________________
My path is lit by my own fire, I only go where I desire
  #7 (permalink)  
Antiguo 16/07/2008, 13:35
 
Fecha de Ingreso: abril-2008
Ubicación: Montevideo - Uruguay
Mensajes: 156
Antigüedad: 16 años
Puntos: 5
Respuesta: Validar fecha dd/mm/yy

Hi !

Lo que dice foreverOdd es cierto, la idea de Javascript es hacer todo tipo de validación/comprobación del lado del cliente evitando hacer proceso innecesarios para el servidor.

Pero por otro lado si aún te decantas por la opción en PHP debes hacer lo siguiente:
Código PHP:
     // Supongamos que tenias una caja de texto llamada "txtFecha"
     
$dma $_POST["txtFecha"];
     
// De esa manera traemos el contenido de la caja de texto y luego 
     // le pasamos la función.

     
if (compruebaFecha($dma)) {
          
//Seguir haciendo cosas.
     
}else{
          echo 
"Muestras un error";
     } 
Espero te sea util... Creo que deberias saber manejar estos aspectos, son muy basicos.

-ByE-
__________________
--
Mi Portfolio Online! Visitalo!
--
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 10:52.