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
}
}
}