Validar fecha

21/07/2005 - 17:13 por Vrr | Informe spam
Hola a todos...

Alguien sabe de alguna función en jscript que me indique si un valor
determinado es de tipo fecha?

Tengo un formulario donde capturo fecha inicial y final y luego hago una
consulta donde el resultado está en ese rango de fechas... el problema es que
si la fecha no es correcta, p.e. si pongo 31/02/2005 el sql me da un error de
que el valor datetime está fuera del intervalo... es por esto que quiero
hacer la validación.

Encontré una función pero está en vbscript y yo la necesito en jscript o
la otra alternativa podría ser cómo llamar a una función vbscript desde una
jscript...

Gracias.
 

Leer las respuestas

#1 Pantxo
21/07/2005 - 17:39 | Informe spam
Yo suelo usar esta:

function valfecha(input, msg, echo){
// FORMATO dd/mm/aaaa
var d=new Date();
meses31='1,3,5,7,8,10,12'
msg = sdatoserr + msg + ':' + input.value + '' + snofecha;
var arrfecha;
arrfecha=input.value.split('/');
if (arrfecha.length!=3){
if (echo){
alert(msg);
input.select();
}
return false;
}
if (arrfecha[0].length==0 || arrfecha[1].length==0 ||
arrfecha[2].length==0){
if (echo){
alert(msg);
input.select();
}
return false;
}
for (var j=0; j<2; j++){
for (i = 0; i < arrfecha[j].length; i++) {
ch = arrfecha[j].substring(i, i + 1)
if (ch < '0' || '9' < ch) {
if (echo){
alert(msg);
input.select();
}
return false;
}
}
}
if (arrfecha[0].substring(0,1)=='0')
arrfecha[0]=arrfecha[0].substring(1,arrfecha[0].length);
if (arrfecha[1].substring(0,1)=='0')
arrfecha[1]=arrfecha[1].substring(1,arrfecha[1].length);
if (arrfecha[2] < 1 || arrfecha[2] > d.getFullYear()){
if (echo){
alert(msg);
input.select();
}
return false;
}
if (arrfecha[1] < 1 || arrfecha[1] > 12){
if (echo){
alert(msg);
input.select();
}
return false;
}
if (arrfecha[0] < 1 || arrfecha[0]>31 || (arrfecha[0]=1 &&
meses31.search(arrfecha[1])==-1)) {
if (echo){
alert(msg);
input.select();
}
return false;
}
if (arrfecha[1]==2 && arrfecha[0]>28){
if (arrfecha[0]!) || (arrfecha[2]%4)!=0){
if (echo){
alert(msg);
input.select();
}
return false;
}
}
return true;
}

La función devuelve 'true' si es una fecha correcta y 'false' si no lo es

Los parámetros que reciben son:
input: control del formalurio que contiene la fecha en su propiedad
value
msg: nombre del campo (para el usuario, se utiliza para crear el mensaje
de aviso)
echo: 'true' devuelve un mensaje de error y selecciona el control del
formulario
'false' la función devuelve el valor sin realizar ninguna
acción de cara al usuario

Un saludo

Pantxo

"Vrr" escribió en el mensaje
news:
Hola a todos...

Alguien sabe de alguna función en jscript que me indique si un valor
determinado es de tipo fecha?

Tengo un formulario donde capturo fecha inicial y final y luego hago una
consulta donde el resultado está en ese rango de fechas... el problema es


que
si la fecha no es correcta, p.e. si pongo 31/02/2005 el sql me da un error


de
que el valor datetime está fuera del intervalo... es por esto que quiero
hacer la validación.

Encontré una función pero está en vbscript y yo la necesito en jscript


o
la otra alternativa podría ser cómo llamar a una función vbscript desde


una
jscript...

Gracias.

Preguntas similares