Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Получить количество дней при вычитании дат (https://javascript.ru/forum/events/12522-poluchit-kolichestvo-dnejj-pri-vychitanii-dat.html)

Spinne 21.10.2010 15:41

Получить количество дней при вычитании дат
 
Здравствуйте, господа. Такой вопрос: есть две даты, нужно узнать количество полных дней между этими датами.
делалось это так:
var diff = Math.floor((endingDate.getTime() - beginingDate.getTime()) / 24 / 60 / 60 / 1000);

Все бы хорошо, но при этом не учитывается переход на зимнее/летнее время. То есть если от даты 02.11.2010 00:00:00 отнимать 30.10.2010 00:00:00, то получим 3 дня и 1 час.
Как с этим бороться ?

subzey 21.10.2010 16:56

Я думаю, нужно отменить летнее время.

Kolyaj 21.10.2010 17:08

Один уже отменил, чем ещё больше усугубил положение с вычислением дат.

vflash 21.10.2010 17:24

subzey, +1 .

для летнего/зимнего времени нужна таблица переходов временной зоны.
другой вариант отказаться в расчетах от летнего времени.

Gvozd 21.10.2010 17:27

Цитата:

Сообщение от Spinne
Как с этим бороться ?

округляйте до целых дней

vflash 21.10.2010 17:31

для полноты картины даты (02.11.2010 00:00:00) должны быть со смешением (+NNN) , тогда можно будет вычислить

e1f 21.10.2010 18:25

А в чем проблема? Проходит ровно 3 часа:
alert( new Date(new Date('11/02/2010 00:00:00').getTime() - new Date('10/30/2010 00:00:00').getTime()) )
// Sun Jan 04 1970 03:00:00 GMT+0200

subzey 22.10.2010 00:54

Kolyaj,
Вы про Владимира Ильича Ульянова/Ленина и декретное время?

Я предлагаю собраться форумом и отменить в СНГ (хотя бы) переход на летнее время. Я думаю, у нас получится! ^.^

Kolyaj 22.10.2010 09:23

subzey,
нет, я про другого Владимира -- Владимировича. Я перепутал с временными поясами.

Spinne 22.10.2010 09:34

Цитата:

Сообщение от vflash (Сообщение 75264)
subzey, +1 .

для летнего/зимнего времени нужна таблица переходов временной зоны.
другой вариант отказаться в расчетах от летнего времени.

Увы, отказаться от летнего времени никак нельзя. А можно набросать пример, как будем выглядеть расчет с такой таблицей ?

Цитата:

Сообщение от Gvozd (Сообщение 75266)
округляйте до целых дней

А я что делаю ?

Цитата:

Сообщение от e1f (Сообщение 75288)
А в чем проблема? Проходит ровно 3 часа:
alert( new Date(new Date('11/02/2010 00:00:00').getTime() - new Date('10/30/2010 00:00:00').getTime()) )
// Sun Jan 04 1970 03:00:00 GMT+0200

А при чем тут часы ?


Часовой пояс GMT +3, время: 19:58.