Modifica: Non è un bug come ha sottolineato Martin. Sto solo attraversando l'ora legale, quindi la differenza di 1 ora.Javascript Differenza di data bug?
voglio calcolare la differenza in giorni tra "29 Mar 2010" e "9 marzo 2010" così ho il seguente codice:
((new Date(2010, 2, 29)).getTime() - (new Date(2010, 2, 8)).getTime())/86400000
86400000 è il numero di millisecondi in un giorno e la differenza tra le date viene restituito in millisecondi, quindi dovrebbe funzionare. Solo che non è abbastanza. Ottengo
20.958333333333332
È la differenza tra quelle 2 date che è sbagliato. Si suppone che sia 1814400000 (21 giorni tempi di 86,4 milioni), ma in realtà è 1810800000.
Inoltre se cambio la differenza:
((new Date(2010, 2, 28)).getTime() - (new Date(2010, 2, 7)).getTime())/86400000
la stessa differenza, spostato solo un giorno indietro, ottengo normale risultati.
Ciò avviene solo se cerchiamo di ottenere (xy) dove x è dopo il 29 marzo 2010 e y è prima del 29 marzo 2010.
ottengo questo su Safari 4 e Firefox 3.6 su Mac, così come IE 8 su windows 7. Non ho provato altri browser.
Sto facendo qualcosa di sbagliato o si tratta di un bug noto?
La seconda data è 8 Marzo 2010. – SLaks