Foros del Web » Programando para Internet » PHP »

Comprobar si fecha es correcta

Estas en el tema de Comprobar si fecha es correcta en el foro de PHP en Foros del Web. Hola. Tengo un formulario donde poseo 3 cuadros de texto, uno para los días, otro para el mes y otro para el año. Me gustaría ...
  #1 (permalink)  
Antiguo 03/07/2006, 14:08
Avatar de rafaconpu  
Fecha de Ingreso: febrero-2006
Mensajes: 331
Antigüedad: 11 años, 9 meses
Puntos: 3
Comprobar si fecha es correcta

Hola.

Tengo un formulario donde poseo 3 cuadros de texto, uno para los días, otro para el mes y otro para el año.

Me gustaría saber cómo puedo hacer para que la fecha introducida sea correcta.

Ejemplo: Si introduzco en el cuadro_dia: 33, cuadro_mes: 13, cuadro_año:2006

se ve claramente que el día y mes son incorrectos.

Y si además pongo como mes febrero (2) los días solo son hasta el 28 ó 29 si es bisiesto.

¿Cómo puedo controlar esto?

He mirado en las FAqs y buscado en la ayuda pero no me sale nada de lo que busco.

¿Hay alguna otra forma de controlar mejor esto?
  #2 (permalink)  
Antiguo 03/07/2006, 14:13
Avatar de goya  
Fecha de Ingreso: enero-2002
Ubicación: La Serena
Mensajes: 273
Antigüedad: 15 años, 10 meses
Puntos: 1
podrias hacer algo en java que te limitara , la otra alternativa seria con ajax , me parece que vi un ejemplo en el foro de ajax

salu2
__________________
:adios:
..."Hay dos cosas que son infinitas: el universo y la estupidez humana; y no estoy muy seguro acerca del universo."
Albert Einstein
  #3 (permalink)  
Antiguo 03/07/2006, 14:18
Avatar de spider_boy  
Fecha de Ingreso: diciembre-2003
Ubicación: Chile
Mensajes: 1.855
Antigüedad: 14 años
Puntos: 88
Código PHP:
// Controlamos que si se elige un mes distinto a febrero, este no tenga más de 31 días ni menos o igual a 0 días
if($_POST['campo_mes'] != && $_POST['campo_dia'] > 31 || $_POST['campo_dia'] <= 0)
{
echo 
"Error... No existe ningun mes con más de 31 días ni con 0 o menos...";
}


// Controlamos que si se elige febrero, este no tenga más de 28 (cuando es normal) ni menos de 0 o igual a 0...
if($_POST['campo_mes'] == && $_POST['campo_dia'] > 28 || $_POST['campo_dia'] <= 0)
{
echo 
"Error... Febrero tiene 28 días (29 cuando es bisiesto) ni tampoco tiene 0 ni menos días";

Nosé como hacerlo cuando es bisiesto... disculpa :(
  #4 (permalink)  
Antiguo 03/07/2006, 19:12
 
Fecha de Ingreso: junio-2006
Mensajes: 1
Antigüedad: 11 años, 5 meses
Puntos: 0
Aqui te envio un script que te puede servir:

<?php
// funcion para calcular si un año es bisiesto o no, retorna 1 si bisiesto, 0 si no lo es
function bisiesto($cuadro_año){
if ($cuadro_año%4!=0)
$bisiesto=0;
else
if ($cuadro_año%400==0)
$bisiesto=1;
else
if ($cuadro_año%100==0)
$bisiesto=0;
else
$bisiesto=1;
return $bisiesto;
}
//funcion para validar la fecha, hace el llamado a la funcion bisiesto
function validarFecha($cuadro_dia, $cuadro_mes, $cuadro_año){
if ($cuadro_dia<0 || $cuadro_dia>31 || $cuadro_mes<0 || $cuadro_mes >12)
$valida=0;
else
if (($cuadro_mes==4 || $cuadro_mes==6 || $cuadro_mes==9 || $cuadro_mes==11) && $cuadro_dia > 30)
$valida=0;
else
if ($cuadro_mes==2 && $cuadro_dia>28+bisiesto($cuadro_año))
$valida=0;
else
$valida=1;
return $valida;
}
// mostramos si la fecha es valida o no
$esvalida = validarFecha($cuadro_dia, $cuadro_mes, $cuadro_año);
if ($esvalida!=0)
echo "la fecha es valida";
else
echo "la fecha no es valida";
?>
  #5 (permalink)  
Antiguo 03/07/2006, 19:22
Avatar de juaniquillo
Colaborador
 
Fecha de Ingreso: noviembre-2005
Ubicación: San Juan, Puerto Rico
Mensajes: 5.745
Antigüedad: 12 años
Puntos: 281
no te compliques la vida. la funcion mktime es presamente para eso.
__________________
Por fin.. tengo algo parecido a un blog
Y por lo visto ya estoy escribiendo...
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 00:43.