Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaScript и даты - странные вещи творятся / 9 сообщений из 9, страница 1 из 1
31.05.2004, 15:24
    #32541178
ДруиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
Коллеги,

кто-нить встречался с неправильнойработой с датами у JavaScript???
Пример. Есть функция, вычисляющая разность дат:

Код: plaintext
1.
2.
3.
4.
5.
6.
function dates_diff(date1,date2)
{
d1 = new Date(date1.substr( 6 , 4 ),date1.substr( 3 , 2 ),date1.substr( 0 , 2 ), 0 , 0 , 0 );
d2 = new Date(date2.substr( 6 , 4 ),date2.substr( 3 , 2 ),date2.substr( 0 , 2 ), 0 , 0 , 0 );
diff =(d2.getTime() - d1.getTime()) /  86400000 ;
return diff;
}

на всех датах работает нормально, НО ЕСТЬ ИСКЛЮЧЕНИЯ:
если date1 = 31_число_месяца_года (напр 31.05.2004),
а date2 = 1_число_следующего_месяца_года (напр 01.06.2004),
то выдает в ответ 0 .

Смотрел по getTime.. у обоих чисел возвращает ОДИНАКОВОЕ число милисекунд.

В ЧЕМ ДЕЛО??? Кто-нибудь подскажет?
...
Рейтинг: 0 / 0
01.06.2004, 11:32
    #32542358
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
я тут поэксперемтировал и оказалось что ситуация еще хуже -
если дни этих двух дат находятся в одном месяце, например 30. 05 .2004 и 31. 05 .2004 то разность считается правильно...
Но если месяцы дат разные - то иногда правильно считает, а иногда неправильно.
Итак:
01.02.2004 - 31.01.2004 = -1
01.03.2004 - 28.02.2004 = 3
01.04.2004 - 31.03.2004 = 0
01.05.2004 - 30.04.2004 = 2
01.06.2004 - 31.05.2004 = 0
01.07.2004 - 30.06.2004 = 2
01.08.2004 - 31.07.2004 = 1
01.09.2004 - 30.08.2004 = 1
....
...
Рейтинг: 0 / 0
01.06.2004, 11:36
    #32542372
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
сорри немного ошибся - в августе же 31 день
01.09.2004 - 31.08.2004 = 0
...
Рейтинг: 0 / 0
01.06.2004, 11:41
    #32542391
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
короче месяцы в жаваскрипте начинаются с 0 .. 11
т.е. 0 - январь, 11 - декабрь
...
Рейтинг: 0 / 0
01.06.2004, 11:48
    #32542413
ДруиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
Ага... такое ощущение, что разработчики где-то очень сильно ошиблись при реализации функции получения UnixTimeStamp.
И как теперь с этим бороться?
И кому по голове за это настучать? :-)

По началу грешил на Винду, но... PHP под виндой с виндовым апачем все корректно обрабатывают...
Что же теперь, все данные при вводе форм постить на сервер, а потом в случае ошибки возвращать обратно?
...
Рейтинг: 0 / 0
01.06.2004, 11:51
    #32542421
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
Итого имеем:
31.00.2004 - 31 января 2004 ну и так дальше
01.01.2004 - 31.00.2004 = 1 - OK
01.02.2004 - 29.01.2004 = 1 - OK
01.03.2004 - 31.02.2004 = 1 -OK
...
...
Рейтинг: 0 / 0
01.06.2004, 11:56
    #32542437
ДруиД
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
Понял, шеф... Спасиба...
Но кому-то за это голову оторвать надо бы, тебе не кажется??? :-)
...
Рейтинг: 0 / 0
01.06.2004, 12:01
    #32542450
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
Итого имеем:
31.00.2004 - 31 января 2004 ну и так дальше
01.01.2004 - 31.00.2004 = 1 - OK
01.02.2004 - 29.01.2004 = 1 - OK
01.03.2004 - 31.02.2004 = 1 -OK
...
...
Рейтинг: 0 / 0
01.06.2004, 12:16
    #32542498
DelphiUser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
JavaScript и даты - странные вещи творятся
чето проглючило ...
ну а голову отрывать, да ладно, мы добрые
:)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaScript и даты - странные вещи творятся / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]