Ver Mensaje Individual
  #9 (permalink)  
Antiguo 02/07/2008, 09:15
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
Respuesta: Problemas con los años bisiestos en JavaScript

Vale, creo que ya lo he sacado:

Mientras que en un script definimos una fecha con:
Código PHP:
var fechaFin = new Date(ahora.getFullYear(),ahora.getMonth()+1,ahoragetDate()); 
En el otro la definimos:
Código PHP:
var fechaFin = new Date(); fechaFin.setMonthfechaFin.getMonth()+); 
Creyendo que es lo mismo, pero no es lo mismo. En el primer caso la hora es las 00:00:00, y en el segundo caso la hora es la hora actual (por ejemplo 17:14:35).

En el primer caso la diferencia es de
Cita:
25010dias,23horas, 0minutos, 0segundos
Y en el segundo caso
Cita:
25011dias,16horas, 6minutos, 59segundos.
Se ve que en el primer caso no pasa a ser 25011 días y se queda en 25010 días por la diferencia de horas, 23, debida al cambio de horario (en febrero estamos en UTC+0100 y en Agosto estamos en UTC+0200, por aquello de adelantar y retrasar la hora).


Si te fijas en este resultado:
Cita:
Desde el Sat Feb 10 00:00:00 UTC+0100 1940
Hasta Sat Aug 2 17:09:13 UTC+0200 2008:
25011dias,16horas, 9minutos, 13segundos.
Se ve perfectamente que si no nos fijamos en el UTC la diferencia tendría que ser de 17 horas (17-0=17) pero es que estamos pasando de un horario UTC+2 a UTC+1, luego es 17-(0+1)=16 horas. Por eso no llega a completarse el día 25010º para ser 25011, por las horas.


Bueno, digo yo que será por eso, así lo he entendido yo. No tiene nada que ver con los años bisiestos, porque los años bisiestos los cuenta igual (desde 1940 a 2008 hay muchos años bisiestos, y la diferencia sería de muchos días, no de sólo uno).




Espero que con ésto te salga lo que estás intentando
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.