Foros del Web » Programando para Internet » Javascript »

Validacion de fecha

Estas en el tema de Validacion de fecha en el foro de Javascript en Foros del Web. Como valido una fecha que este en esta forma? 10/12/2002 Gracias..........
  #1 (permalink)  
Antiguo 27/06/2002, 08:23
 
Fecha de Ingreso: abril-2002
Ubicación: Querétaro
Mensajes: 94
Antigüedad: 22 años, 1 mes
Puntos: 0
Validacion de fecha

Como valido una fecha que este en esta forma?
10/12/2002

Gracias.......
  #2 (permalink)  
Antiguo 27/06/2002, 09:26
 
Fecha de Ingreso: mayo-2002
Mensajes: 88
Antigüedad: 22 años
Puntos: 0
Re: Validacion de fecha

Mira el mensaje "metodos que no funcionan en netscape", de 3pMaria, y ahí tienes una función de validación de fecha con ese formato, espero que te sirva
  #3 (permalink)  
Antiguo 27/06/2002, 13:41
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Validacion de fecha

La fecha que queres validar esta en un solo campo como vos la escribiste?
Si es asi te paso un script para validar fecha, y horas , de paso:
<HTML>
<HEAD>
<TITLE>Validaciones de Fechas y Horas</TITLE>
<SCRIPT language="JavaScript">

numeros="0123456789";
separadorfecha="/";
var separadorhora=":";
error= new creaerror();
errores= new Array();

errores[1]="Campo vacio no contiene ningún valor ";
errores[2]="Carácter ilegal en una fecha";
errores[3]="Faltan separadores en una fecha";
errores[4]="Año incorrecto en una fecha";
errores[5]="Mes incorrecto en una fecha";
errores[6]="Día incorrecto en una fecha";
errores[7]="Carácter ilegal en una hora";
errores[8]="Faltan separadores en una hora";
errores[9]="Hora incorrecta en una hora";
errores[10]="Minutos incorrectos en una hora";
errores[11]="Segundos incorrectos en una hora";

// Crea un objeto que guarda un indice a la posición y al mensaje de error
function creaerror()
{
this.valor=0;
this.posicion=0;
return this
}

// Determina si un caracter es un número
function numero(car)
{
return (numeros.indexOf(car)>=0)
}

// Determina si un año es bisiesto
function bisiesto(anio)
{
if (((anio % 4 == 0) && anio % 100 != 0) || anio % 400 == 0)
return true;
return false;
}

// Comprueba si una fecha es correcta
function compruebafecha(contenido,error)
{

if ((contenido.length==0))
{
error.valor=1;
error.posicion=1;
return false;
}
var nsep=0;
// Comprobación de la sintáxis de una fecha
for (var i=0; i<contenido.length; ++i)
{
var car=contenido.charAt(i);
if (!numero(car)&&car!=separadorfecha)
{
error.valor=2;
error.posicion=i+1;
return false;
}
if (car==separadorfecha)
nsep++
}
SIGUE ->
  #4 (permalink)  
Antiguo 27/06/2002, 13:44
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Validacion de fecha

if (nsep!=2)
{
error.valor=3;
error.posicion=i+1;
return false;
}
// Comprobación de la semántica de una fecha
var pos1=contenido.indexOf(separadorfecha);
var dia=contenido.substring(0,pos1);
var pos2=contenido.indexOf(separadorfecha,pos1+1);
var mes=contenido.substring(pos1+1,pos2);
var anio=contenido.substring(pos2+1,10);
if (anio<0||anio>9999)
{
error.valor=4;
error.posicion=6;
return false;
}
if (mes<1||mes>12)
{
error.valor=5;
error.posicion=4;
return false;
}
if ((dia<1 || dia>31)||(mes==4&&dia>30)||(mes==6&a mp;&dia>30)
||(mes==9&&dia>30)||(mes==11&&d ia>30)
||(mes==2&&bisiesto(anio)&&dia> 29)
||(mes==2&&!bisiesto(anio)&&dia&gt ;28)
)
{
error.valor=6;
error.posicion=2;
return false;
}
return true
}

// Comprueba si una hora es correcta
function compruebahora(contenido,error)
{
if ((contenido.length==0))
{
error.valor=1;
error.posicion=1;
return false;
}
var nsep=0;
// Comprobación de la sintáxis de una hora
for (var i=0; i<contenido.length; ++i)
{
var car=contenido.charAt(i);
if (!numero(car) && car!=separadorhora)
{
error.valor=7;
error.posicion=i+1;
return false;
}
if (car==separadorhora)
nsep++
}
if (nsep!=2)
{
error.valor=8;
error.posicion=i+1;
return false;
}
// Comprobación de la semántica de una hora
var pos1=contenido.indexOf(separadorhora);
var horas=contenido.substring(0,pos1);
var pos2=contenido.indexOf(separadorhora,pos1+1);
var minutos=contenido.substring(pos1+1,pos2);
var segundos=contenido.substring(pos2+1,10);
if (horas>24||horas.length>2)
{
error.valor=9;
SIGUE ->
  #5 (permalink)  
Antiguo 27/06/2002, 13:46
 
Fecha de Ingreso: junio-2002
Ubicación: Buenos Aires, Argentina
Mensajes: 876
Antigüedad: 21 años, 10 meses
Puntos: 0
Re: Validacion de fecha

error.posicion=2;
return false;
}
if (minutos>59||minutos.length>2)
{
error.valor=10;
error.posicion=4;
return false;
}
if (segundos>59||segundos.length>2)
{
error.valor=11;
error.posicion=6;
return false;
}
return true
}

// Ejecuta la validación pedida
function ejecuta(valor)
{
var correcto;
switch (valor)
{
case 1:
correcto=compruebafecha(window.document.formulario .campo.value,error);
break;
case 2:
correcto=compruebahora(window.document.formulario. campo.value,error);
break;
default:
break;
}
if (correcto)
alert("El campo es válido")
else
alert("El campo NO es válido. ERROR:"+errores[error.valor]+
" en la posicion "+error.posicion);
}

</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="formulario" ACTION="">

<CENTER>
<B>Validaciones de Fechas y Horas</B><BR><BR>
Dato:
<INPUT TYPE="Text" VALUE="" NAME="campo" MAXLENGTH=10 SIZE=10><BR><BR>
<INPUT TYPE="Button" VALUE="Validafecha" onClick="ejecuta(1)">
<INPUT TYPE="Button" VALUE="Validahora" onClick="ejecuta(2)">
</CENTER>

</FORM>
</BODY>
</HTML>
  #6 (permalink)  
Antiguo 01/07/2002, 16:16
 
Fecha de Ingreso: abril-2002
Ubicación: Querétaro
Mensajes: 94
Antigüedad: 22 años, 1 mes
Puntos: 0
Re: Validacion de fecha

Muchisimas gracias, veo que no es tan sencillo

no se si tienes algun otro script para validar si una fecha es anterior a otra?

Muchisimas gracias de nuevo
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 21:17.