Foros del Web » Programando para Internet » Javascript »

Error al calcular fecha

Estas en el tema de Error al calcular fecha en el foro de Javascript en Foros del Web. Buenas: Gente al usar la funcion de este FAQ para calcular una fecha a partir de otra me devuelve mal los resultados cuando el día ...
  #1 (permalink)  
Antiguo 11/04/2006, 09:08
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 1 mes
Puntos: 0
Error al calcular fecha

Buenas:
Gente al usar la funcion de este FAQ para calcular una fecha a partir de otra me devuelve mal los resultados cuando el día de la fecha base son "08" o "09" entonces me devuelve día "00" en la fecha calculada.

Acá les dejo el link del FAQ, es mas si prueban el ejemplo que hay en el FAQ da ese error, si alguien sabe como solucionarlo le agradezco.

http://www.forosdelweb.com/showthrea...585#post262585

Saludos
  #2 (permalink)  
Antiguo 11/04/2006, 09:49
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola NoChance

No se por qué razón si pones parseInt('08') da cero, lo mismo pasa con '09'. La solución que se me ocurre es que cambies:

var nDia = parseInt(sFc0.substr(0, 2));

por: var nDia = parseFloat(sFc0.substr(0, 2));

Saludos,
  #3 (permalink)  
Antiguo 11/04/2006, 09:56
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 1 mes
Puntos: 0
Si uso parseFloat directamente no calcula nada y me deja el campo totalmente vacio
  #4 (permalink)  
Antiguo 11/04/2006, 10:00
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola de nuevo.

Poniendo así la función calcula() me ha funcionado bien:
Código:
   function calcula(){
    var sFc0 = document.frm.fecha0.value; // Se asume válida
    var nSum = parseInt(document.frm.meses.value);
    var sFc1 = sFc0;
    if (!isNaN(nSum)){
     var nDia = parseFloat(sFc0.substr(0, 2));
     var nMes = parseFloat(sFc0.substr(3, 2));
     var nAno = parseFloat(sFc0.substr(6, 4));
     sFc1 = sumaMes(nDia, nMes, nAno, nSum);
    }
    document.frm.fecha1.value = sFc1;
   }
Saludos,
  #5 (permalink)  
Antiguo 11/04/2006, 10:12
 
Fecha de Ingreso: marzo-2006
Mensajes: 83
Antigüedad: 18 años, 1 mes
Puntos: 0
ok, muchas gracias!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:36.