Editar: No es un error como señaló Martin. Estoy cruzando el horario de verano, de ahí la diferencia de 1 hora.Javascript ¿Diferencia de fecha?
quiero para calcular la diferencia en días entre "29 mar 2010" y "mar 09 2010", así que tengo el siguiente código:
((new Date(2010, 2, 29)).getTime() - (new Date(2010, 2, 8)).getTime())/86400000
86400000 es el número de milisegundos en un día y la diferencia entre las fechas se devuelve en milisegundos, por lo que debería funcionar. Solo que no lo hace del todo. Obtengo
20.958333333333332
Es la diferencia entre esas 2 fechas que es incorrecta. Se supone que es 1814400000 (21 días se presentarán tiempos 86400000), pero en realidad es 1810800000.
Por otra parte si cambio la diferencia a:
((new Date(2010, 2, 28)).getTime() - (new Date(2010, 2, 7)).getTime())/86400000
la misma diferencia, solamente desplazado un día de vuelta, me sale la normalidad resultados.
Esto ocurre sólo si tratamos de obtener (x), donde x es después del 29 de marzo de 2010 y que y es antes del 29 de marzo de 2010.
consigo esto en Safari 4 y Firefox 3.6 en Mac, así como IE 8 en Windows 7. No he probado otros navegadores.
¿Estoy haciendo algo mal o se trata de un error conocido?
Su segunda fecha es marzo del 08 de 2010. – SLaks