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.

Preguntas similare

Leer las respuestas

#6 Nuno Santos
21/07/2005 - 19:22 | Informe spam
Una opinión, si me permiten...

Lo ideal para SQL es utilizar el formato yyyy/mm/dd, este formato no dá
erro... :-), en mis aplicaciones utilizo siempre este formato, el utilizador
tiene dos forma de escrivir la data, o lo hace manualmente en el formato
yyyy/mm/dd o entonces utiliza el control calendário que tengo en mis
páginas... Caso quieras colocar um calendário en tus inputs para ayudar el
user a colocar la data verifica la web www.asptutor.com tienen un ejemplo de
calendario...

Nuno Santos


Nuno Santos
nunos7[REMOVER]@hotmail.com

"Vrr" wrote in message
news:
Además el mayor problema viene al tratar de insertar en la base de
datos...
por que si trato de insertar 05/13/2005 que según isdate es una fecha
válida,
sql me da error por que según él el formato no es válido, en todo caso
debería ser 13/05/2005 y ahí viene el problema que comenta pantxo... por
eso,
al menos en mi aplicación es importante utilizar un solo formato de fecha,
en
este caso dd/mm/aaaa para que al insertar en la db no me cause problemas.

Saludos.

"Vrr" escribió:

Hola a los dos, gracias por contestar...

Me parece que pantxo tiene razón matías, o al menos para mi página se
aplica
lo que el comenta... ya probé con isdate de asp y me dio el siguiente
problema:

yo le digo al usuario que el formato con el que debe capturar es
dd/mm/aaaa
y por ejemplo si el usuario captura 05/13/2005 (lo cual sería incorrecto
según el formato indicado) y valido este dato con isdate me dice que es
una
fecha válida...

yo creo que más bien al isdate le faltaría algo para indicar con qué
formato
quieres validar...

algo como : IsDate(miFecha,formato)

donde formato pueda ser 1: dd/mm/aaaa ; 2: aaaa/mm/dd ; etc...

desafortunadamente esto no se puede

Saludos.

"Matias Iacono" escribió:

> De hecho, no es un error. Cuando se trabaja con aplicaciones
> multidioma, por
> ejemplo, los formatos son totalmente diferentes de una cultura a la
> otra. Y,
> manipular cada uno de los formatos para restringir la introduccion de
> los
> mismos se torna una tarea imposible o inecesaria.
>
> Por eso, la validacion de fechas desde el codigo ASP resulta mucho mas
> facil
> y mejor controlable.
>
> Saludos,
>
> Matias Iacono
> Microsoft MVP ASP/ASP.net - DC3
> https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
> "Pantxo" escribió en el mensaje
> news:
> > Creo que lo que comentas es un error Matias.
> > No puedes permitir en tú página que introduzcan las fechas en dos
> > formatos
> > distintos como comentas.
> > Tal y como dices si permites que se introduzcan fechas en formatos
> > DD/MM/YYYY y DD/MM/YYYY en el caso de que uno de los dos primeros
> > valores
> > sea mayor que 12 la aplicación la tomará comodía y no exisitirá
> > ningún
> > problema. Pero ¿qué pasa si el usuario introduce una fecha como el 4
> > de
> > mayo? Si recibes del formulario el 04/05/2005 o el 05/04/2005 ¿cómo
> > puedes
> > saber a qué fecha se está refiriendo?
> > El formato de introducción de fecha debes indicárselo tú, no puedes
> > dejar
> > que cada cual introduzca el que le parezca porque ¿qué harías con una
> fecha
> > del tipo 03/02/04? ¿3 de febrero del 2004? ¿2 de marzo del 2004? ¿4
> > de
> > febrero del 2003?...
> >
> > Un saludo
> >
> > Pantxo
> >
> > "Matias Iacono" escribió en el mensaje
> > news:
> > > En javascript es dificil. Mas, teniendo en cuenta que no podrias
> > > saber
> > > especificamente si es o no una fecha.
> > >
> > > Por lo general, las validaciones con JS solo verifican que se haya
> > > introducido /, y que solo sean caracteres numericos.
> > >
> > > Esto debido a que una fecha, en web, puede ser introducida de
> > > diferentes
> > > formatos dependiendo del lugar desde donde se acceda a la pagina.
> > >
> > > Por ejemplo, algunos usan DD/MM/YYYY, otros MM/DD/YYYY, etc.
> > >
> > > Por eso, lo mejor que puedes hacer para validar una fecha, es
> > > hacerlo
> > desde
> > > el ASP, con el comando ISDATE, esto te retornara verdadero o falso
> > > dependiendo de que si es una fecha o no.
> > >
> > > Saludos,
> > >
> > > Matias Iacono
> > > Microsoft MVP ASP/ASP.net - DC3
> > >
> >
> https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
> > > "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.
> > >
> > >
> >
> >
>
>
>
Respuesta Responder a este mensaje
#7 Matias Iacono
21/07/2005 - 20:34 | Informe spam
En javascript es dificil. Mas, teniendo en cuenta que no podrias saber
especificamente si es o no una fecha.

Por lo general, las validaciones con JS solo verifican que se haya
introducido /, y que solo sean caracteres numericos.

Esto debido a que una fecha, en web, puede ser introducida de diferentes
formatos dependiendo del lugar desde donde se acceda a la pagina.

Por ejemplo, algunos usan DD/MM/YYYY, otros MM/DD/YYYY, etc.

Por eso, lo mejor que puedes hacer para validar una fecha, es hacerlo desde
el ASP, con el comando ISDATE, esto te retornara verdadero o falso
dependiendo de que si es una fecha o no.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"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.
Respuesta Responder a este mensaje
#8 Matias Iacono
21/07/2005 - 20:56 | Informe spam
De hecho, no es un error. Cuando se trabaja con aplicaciones multidioma, por
ejemplo, los formatos son totalmente diferentes de una cultura a la otra. Y,
manipular cada uno de los formatos para restringir la introduccion de los
mismos se torna una tarea imposible o inecesaria.

Por eso, la validacion de fechas desde el codigo ASP resulta mucho mas facil
y mejor controlable.

Saludos,

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"Pantxo" escribió en el mensaje
news:
Creo que lo que comentas es un error Matias.
No puedes permitir en tú página que introduzcan las fechas en dos formatos
distintos como comentas.
Tal y como dices si permites que se introduzcan fechas en formatos
DD/MM/YYYY y DD/MM/YYYY en el caso de que uno de los dos primeros valores
sea mayor que 12 la aplicación la tomará comodía y no exisitirá ningún
problema. Pero ¿qué pasa si el usuario introduce una fecha como el 4 de
mayo? Si recibes del formulario el 04/05/2005 o el 05/04/2005 ¿cómo puedes
saber a qué fecha se está refiriendo?
El formato de introducción de fecha debes indicárselo tú, no puedes dejar
que cada cual introduzca el que le parezca porque ¿qué harías con una


fecha
del tipo 03/02/04? ¿3 de febrero del 2004? ¿2 de marzo del 2004? ¿4 de
febrero del 2003?...

Un saludo

Pantxo

"Matias Iacono" escribió en el mensaje
news:
> En javascript es dificil. Mas, teniendo en cuenta que no podrias saber
> especificamente si es o no una fecha.
>
> Por lo general, las validaciones con JS solo verifican que se haya
> introducido /, y que solo sean caracteres numericos.
>
> Esto debido a que una fecha, en web, puede ser introducida de diferentes
> formatos dependiendo del lugar desde donde se acceda a la pagina.
>
> Por ejemplo, algunos usan DD/MM/YYYY, otros MM/DD/YYYY, etc.
>
> Por eso, lo mejor que puedes hacer para validar una fecha, es hacerlo
desde
> el ASP, con el comando ISDATE, esto te retornara verdadero o falso
> dependiendo de que si es una fecha o no.
>
> Saludos,
>
> Matias Iacono
> Microsoft MVP ASP/ASP.net - DC3
>



https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
> "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.
>
>


Respuesta Responder a este mensaje
#9 Matias Iacono
21/07/2005 - 22:07 | Informe spam
En base a la cultura del navegador.

Por lo general, los equipos poseen una cultura regional, la cual esta
relacionada con el pais donde la persona vive.

Desde ahi, es muy facil deducir cual puede ser el formato que el usuario uso
para introducir su fecha.

Matias Iacono
Microsoft MVP ASP/ASP.net - DC3
https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
"Pantxo" escribió en el mensaje
news:
Pero, como te decía antes, ¿cómo interpretas una fecha correctamente sin
saber en qué formato lo está introduciendo el usuario?

"Matias Iacono" escribió en el mensaje
news:
> De hecho, no es un error. Cuando se trabaja con aplicaciones multidioma,
por
> ejemplo, los formatos son totalmente diferentes de una cultura a la


otra.
Y,
> manipular cada uno de los formatos para restringir la introduccion de


los
> mismos se torna una tarea imposible o inecesaria.
>
> Por eso, la validacion de fechas desde el codigo ASP resulta mucho mas
facil
> y mejor controlable.
>
> Saludos,
>
> Matias Iacono
> Microsoft MVP ASP/ASP.net - DC3
>



https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
> "Pantxo" escribió en el mensaje
> news:
> > Creo que lo que comentas es un error Matias.
> > No puedes permitir en tú página que introduzcan las fechas en dos
formatos
> > distintos como comentas.
> > Tal y como dices si permites que se introduzcan fechas en formatos
> > DD/MM/YYYY y DD/MM/YYYY en el caso de que uno de los dos primeros
valores
> > sea mayor que 12 la aplicación la tomará comodía y no exisitirá ningún
> > problema. Pero ¿qué pasa si el usuario introduce una fecha como el 4


de
> > mayo? Si recibes del formulario el 04/05/2005 o el 05/04/2005 ¿cómo
puedes
> > saber a qué fecha se está refiriendo?
> > El formato de introducción de fecha debes indicárselo tú, no puedes
dejar
> > que cada cual introduzca el que le parezca porque ¿qué harías con una
> fecha
> > del tipo 03/02/04? ¿3 de febrero del 2004? ¿2 de marzo del 2004? ¿4 de
> > febrero del 2003?...
> >
> > Un saludo
> >
> > Pantxo
> >
> > "Matias Iacono" escribió en el mensaje
> > news:
> > > En javascript es dificil. Mas, teniendo en cuenta que no podrias


saber
> > > especificamente si es o no una fecha.
> > >
> > > Por lo general, las validaciones con JS solo verifican que se haya
> > > introducido /, y que solo sean caracteres numericos.
> > >
> > > Esto debido a que una fecha, en web, puede ser introducida de
diferentes
> > > formatos dependiendo del lugar desde donde se acceda a la pagina.
> > >
> > > Por ejemplo, algunos usan DD/MM/YYYY, otros MM/DD/YYYY, etc.
> > >
> > > Por eso, lo mejor que puedes hacer para validar una fecha, es


hacerlo
> > desde
> > > el ASP, con el comando ISDATE, esto te retornara verdadero o falso
> > > dependiendo de que si es una fecha o no.
> > >
> > > Saludos,
> > >
> > > Matias Iacono
> > > Microsoft MVP ASP/ASP.net - DC3
> > >
> >
>



https://mvp.support.microsoft.com/profiležACEDFE-6C76-4156-ACE3-BD3E257868B7
> > > "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.
> > >
> > >
> >
> >
>
>


Respuesta Responder a este mensaje
#10 Carlos Rojas
27/07/2005 - 02:02 | Informe spam
Prueba con esta funcion

Function ValFec(ano,mes,dia){
var fec;
fec=new Date(ano,mes,dia);
if (!(dia==fec.getDate() && mes==fec.getMonth() && ano==fec.getFullYear())){
alert("Fecha incorrecta");
return(0);
}
}

Esta funcion se basa en que jscript no te devuelve error si defines una
fecha como new Date(2005,12,32), lo que hace es calcular una fecha correcta
basada en los datos 2005,12,32; como diciembre solo tiene 31 jscript
descompone el 32 en 31 + 1 creando la fecha 31/12/2005 + 1 lo que resulta
en 01/01/2006
Luego se comparan los argumentos de la funcion con la fecha resultanteasi
tenemos que
32/12/2005 genera una fecha 01/01/2006 y al compara el dia, mes y año
original con el dia, mes y año resultante da que son diferentes.

para 02/05/2005 se genera la fecha 02/05/2005, al comparar los datos
originales son iguales a los datos resultantes por que es una fecha valida

Espero esta funcion te sirva.

Saludos
Carlos Rojas



"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.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida