Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/10/2009, 13:17
Avatar de rgbarbieri
rgbarbieri
 
Fecha de Ingreso: agosto-2009
Mensajes: 13
Antigüedad: 14 años, 9 meses
Puntos: 1
Respuesta: javascript validar fecha

Con esta funcion de javascript validás la fecha de un form, haces que el usuario ingrese dos fechas por un combo y te indica si son validas o no.


function Validafecha(form)
{
// Verifico que tanto la fecha de inicio como la de fin se encuentran completas
if ((form.FDIAI.value=='') || (form.FMESI.value=='') || (form.FANIOI.value==''))
{
alert('No completó bien la fecha de inicio');
return false;
}

if ((form.FDIAF.value=='') || (form.FMESF.value=='') || (form.FANIOF.value==''))
{
alert('No completó bien la fecha de finalización');
return false;
}
// return true;

DiaI = cint(form.FDIAI.value);
MesI = cint(form.FMESI.value);
AnioI = cint(form.FANIOI.value);
DiaF = cint(form.FDIAF.value);
MesF = cint(form.FMESF.value);
AnioF = cint(form.FANIOF.value);

campo = form.FMESI;
err = false;

// Verifico que la fecha de inicio no sea mayor a la fecha de fin

if ( (MesI == 0) || (AnioI == 0) || (MesF == 0) || (AnioF == 0) )
{ err = true; }

if (AnioI > AnioF)
{ err = true; }

if ((AnioI == AnioF) && (MesI > MesF))
{ err = true; }


if (err)
{
alert("Debe seleccionar las Fechas.\nLa Fecha INICIO no puede ser posterior\na la Fecha FIN.");
campo.focus();
return (false);
}


// CON ESTO VERIFICO LOS MESES QUE TIENEN DIA 31 VIGENTE Y EN EL CASO DEL 29 DE FEBRERO VERIFICO QUE EL AÑO SEA BISIESTO
// PARA LA FECHA DE INICIO

if ((MesI==1) || (MesI==3) || (MesI==5) || (MesI==7) || (MesI==8) || (MesI==10) || (MesI==12))
{
if ((DiaI==31) && (MesI%1)==0 || (MesI%3)==0 || (MesI%5)==0 || (MesI%7)==0 || (MesI%8)==0 || (MesI%10)==0 || (MesI%12)==0 )
{
//alert('El dia :'+DiaI+' es válido');
return true;
}
}
else
{
if ((DiaI == 29) && (MesI==2))
{
if ((AnioI%4)==0 && (AnioI%100)!=0)
{
//alert('El Año '+ AnioI +' ES BISIESTO\npor lo tanto ES VALIDO el dia: '+DiaI);
return true;
}
else {
alert('El Año '+ AnioI +' NO ES BISIESTO\npor lo tanto el día '+DiaI+'/'+MesI+' NO ES VALIDO, \ncomplete la fecha de Inicio correctamente');
return false;
}
}
if ((DiaI > 29 )&& (DiaI < 31) && (MesI==2))
{
alert(DiaI +' de Febrero NO ES UN DIA VALIDO, complete la fecha correctamente');
return false;
}

if (DiaI == 31) {
alert(DiaI +'/'+MesI+' NO ES UN DIA VALIDO, complete la fecha correctamente');
return false;
}

}


// CON ESTO VERIFICO LOS MESES QUE TIENEN DIA 31 VIGENTE Y EN EL CASO DEL 29 DE FEBRERO VERIFICO QUE EL AÑO SEA BISIESTO
// PARA LA FECHA DE FIN

if ((MesF==1) || (MesF==3) || (MesF==5) || (MesF==7) || (MesF==8) || (MesF==10) || (MesF==12))
{
if ((DiaF==31) && (MesF%1)==0 || (MesF%3)==0 || (MesF%5)==0 || (MesF%7)==0 || (MesF%8)==0 || (MesF%10)==0 || (MesF%12)==0 )
{
//alert('El dia :'+DiaF+' es válido');
return true;
}
}
else
{
if ((DiaF == 29) && (MesF==2))
{
if ((AnioF%4)==0 && (AnioF%100)!=0)
{
//alert('El Año '+ AnioF +' ES BISIESTO\npor lo tanto ES VALIDO el dia: '+DiaF);
return true;
}
else {
alert('El Año '+ AnioF +' NO ES BISIESTO\npor lo tanto el día '+DiaF+'/'+MesF+' NO ES VALIDO, \ncomplete la fecha de Fin correctamente');
return false;
}
}
if ((DiaF > 29 )&& (DiaF < 31) && (MesF==2))
{
alert(DiaF +' de Febrero NO ES UN DIA VALIDO, complete la fecha correctamente');
return false;
}

if (DiaF == 31) {
alert(DiaF +'/'+MesF+' NO ES UN DIA VALIDO, complete la fecha correctamente');
return false;
}

}

return false;
}