Редактировать: Это не ошибка, как указал Мартин. Я просто перехожу на летнее время, отсюда разница в 1 час.Ошибка Javascript с ошибкой по дате?
Я хочу, чтобы вычислить разницу в днях между «29 марта 2010» и «09 марта 2010 года», так что у меня есть следующий код:
((new Date(2010, 2, 29)).getTime() - (new Date(2010, 2, 8)).getTime())/86400000
86400000 это число миллисекунд в день, а разница между датами возвращается в миллисекундах, поэтому это должно сработать. Только это не совсем. Я получаю
20.958333333333332
Это разница между этими двумя датами, которые являются неправильными. Это должно быть 1814400000 (21 дней раз 86400000), но это на самом деле 1810800000.
Кроме того, если я изменю разницу:
((new Date(2010, 2, 28)).getTime() - (new Date(2010, 2, 7)).getTime())/86400000
той же разницей, только сдвинуты один день назад, я получаю нормальный Результаты.
Это происходит только тогда, когда мы пытаемся получить (х), где х после 29 марта 2010 года, и у есть до 29 марта 2010 года
Я получаю это на Safari 4 и Firefox 3.6 на Mac, а также IE 8 на Windows 7. Не пробовали другие браузеры.
Я делаю что-то неправильно или это известная ошибка?
Ваша вторая дата 8 марта 2010. – SLaks