| Usuario |
como comparar fechas |
Desconocido
|
| Enviado - 16/9/2002 |
| |
Necesito saber como se pueden comparar dos fechas con javaScript. Dada una fecha de alta necesito validar una fecha de baja que no pueda ser anterior a la de alta. Gracias de antemano.
|
| |
|
Desconocido
|
| Enviado - 14/10/2002 |
| |
bueno.. aquí encontré una pequeña funcion que hace esto.. pero el formato de entrada es DD/MM/YYYY...
se entiende?
function Comparar_Fecha(Obj1,Obj2)
{
String1 = document.form.fecha_desde.value;
String2 = document.form.fecha_hasta.value;
// Si los dias y los meses llegan con un valor menor que 10
// Se concatena un 0 a cada valor dentro del string
if (String1.substring(1,2)=="/") {
String1="0"+String1
}
if (String1.substring(4,5)=="/"){
String1=String1.substring(0,3)+"0"+String1.substring(3,9)
}
if (String2.substring(1,2)=="/") {
String2="0"+String2
}
if (String2.substring(4,5)=="/"){
String2=String2.substring(0,3)+"0"+String2.substring(3,9)
}
dia1=String1.substring(0,2);
mes1=String1.substring(3,5);
anyo1=String1.substring(6,10);
dia2=String2.substring(0,2);
mes2=String2.substring(3,5);
anyo2=String2.substring(6,10);
if (dia1 == "08") // parseInt("08") == 10 base octogonal
dia1 = "8";
if (dia1 == '09') // parseInt("09") == 11 base octogonal
dia1 = "9";
if (mes1 == "08") // parseInt("08") == 10 base octogonal
mes1 = "8";
if (mes1 == "09") // parseInt("09") == 11 base octogonal
mes1 = "9";
if (dia2 == "08") // parseInt("08") == 10 base octogonal
dia2 = "8";
if (dia2 == '09') // parseInt("09") == 11 base octogonal
dia2 = "9";
if (mes2 == "08") // parseInt("08") == 10 base octogonal
mes2 = "8";
if (mes2 == "09") // parseInt("09") == 11 base octogonal
mes2 = "9";
dia1=parseInt(dia1);
dia2=parseInt(dia2);
mes1=parseInt(mes1);
mes2=parseInt(mes2);
anyo1=parseInt(anyo1);
anyo2=parseInt(anyo2);
if (anyo1>anyo2)
{
return false;
}
if ((anyo1==anyo2) && (mes1>mes2))
{
return false;
}
if ((anyo1==anyo2) && (mes1==mes2) && (dia1>dia2))
{
return false;
}
return true;
}
Se debe llamar con de esta forma
if (!Comparar_Fecha(fecha_1, fecha_2)){
alert("La fecha Hasta No debe ser menor que la fecha Desde.");
return false};
esepro quede claro..
La gata blanca
|
| |
|
Desconocido
|
| Enviado - 9/6/2004 |
| |
Todavía no lo he probado, pero lo que me llama la atención a simple vista es el trozo de código del ParseInt..
Por qué hay que tratar los "08" y "09" antes de aplicarle el ParseInt?
No habría que tratarlos todos hasta el "01" ??
No entiendo porqué únicamente los "08" y "09"...
Gracias |
| |
|
Desconocido
|
| Enviado - 22/6/2004 |
| |
Hola:
Necesitaba algo para comparar fechas y al final me he decantado por esto, que creo lo mas sencillo y elegante:
teniendo dos variables de fecha(fec1string y fec2string) como formato string 'dd/mm/aaaa'
auxfec1=date.parse(fec1string);
auxfec2=date.parse(fec2string);
date.parse lo que hace es devolverte un numero entero, con lo cual la comparacion es asi de simple
if auxfec1>auxfec2{
alert('fecha auxfec1 mayor que fecha auxfec2');
}
Espero te haya servido de ayuda.
Un saludo,
Juanjo Lopez.
|
| |
|
Desconocido
|
| Enviado - 23/6/2004 |
| |
La respuesta que di no es correcta para algunos casos, asi que mejor olvidarla.
Un saludo,
Juanjo Lopez. |
| |
|
Desconocido
|
| Enviado - 25/6/2004 |
| |
if ((document.theForm.fini.value.substring+document.theForm.fini.value.substring(3,5)+document.theForm.fini.value.substring(0,2)) > (document.theForm.ffin.value.substring(6,10)+document.theForm.ffin.value.substring(3,5)+document.theForm.ffin.value.substring(0,2)))
alert(' Intervalo de fechas incorrecto')
Kiko B.S.
|
| |
|
Desconocido
|
| Enviado - 25/6/2004 |
| |
if ((document.theForm.fini.value.substring(6,10)+document.theForm.fini.value.substring(3,5)+document.theForm.fini.value.substring(0,2)) > (document.theForm.ffin.value.substring(6,10)+document.theForm.ffin.value.substring(3,5)+document.theForm.ffin.value.substring(0,2)))
alert(' Intervalo de fechas incorrecto')
Kiko B.S.
|
| |
|
Desconocido
|
| Enviado - 7/9/2004 |
| |
La respuesta de Juanjo Lopez es correcta solo que el formato de la fecha debe ser mm/dd/yyyy en lugar de dd/mm/yyyy (por eso a el le fallaba en algunos casos).
Es que Java Script es muy americano jeje.
Ciaaaao. |
| |
|
Desconocido
|
| Enviado - 18/10/2004 |
| |
Hola:
He estado haciendo pruebas, y este metodo no estan bueno como parece, ya que me permite hacer esto: 30/20/2004, es decir me deja de meter el 30 como mes.
Saludos. |
| |
|
|
|