Ver Mensaje Individual
  #2 (permalink)  
Antiguo 06/07/2006, 13:07
magustinapaz
 
Fecha de Ingreso: mayo-2006
Mensajes: 15
Antigüedad: 18 años, 6 meses
Puntos: 0
valida un string fecha en formato dd/mm/aaaa
devuelve false si es incorrecta o una cadena formato d/m/aaaa si es correcta
contempla bisiestos y todo. Solo adaptalo a tus necesidadades


Código:
function ValidarFecha(fecha) {
	var texto=String(fecha);
	var f=texto.split("/");
	if (f.length!=3) {
		return false
	} else if (f[2]<1900 || f[2]>2010) {
		return false
	} else if (f[1]<1 || f[1]>12) {
		return false
	} else {
		var bisiesto=false;
		if (parseFloat(f[2]/400)==parseInt(f[2]/400)) {
			bisiesto=true;
		} else if (parseFloat(f[2]/4)==parseInt(f[2]/4)) {
			if (parseFloat(f[2]/100)!=parseInt(f[2]/100)) {
				bisiesto=true;
			}
		}
		var diavalido=false;
		if (f[1]==1 || f[1]==3 || f[1]==5 || f[1]==7 || f[1]==8 || f[1]==10 || f[1]==12) {
			diavalido=(f[0]>=1 && f[0]<=31)
		} else if (f[1]==4 || f[1]==6 || f[1]==9 || f[1]==11) {
			diavalido=(f[0]>=1 && f[0]<=30)
		} else if (f[1]==2) {
			diavalido=(f[0]>=1 && f[0]<=((bisiesto)?29:28))
		}
		if (diavalido) {
			var ffinal=new Date();
			ffinal.setFullYear(f[2]);
			ffinal.setMonth(f[1]-1);
			ffinal.setDate(f[0]);
			return ffinal.getDate()+"/"+(ffinal.getMonth()+1)+"/"+ffinal.getFullYear();
		} else {
			return false
		}
	}
}