|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
Коллеги, кто-нить встречался с неправильнойработой с датами у JavaScript??? Пример. Есть функция, вычисляющая разность дат: Код: plaintext 1. 2. 3. 4. 5. 6.
на всех датах работает нормально, НО ЕСТЬ ИСКЛЮЧЕНИЯ: если date1 = 31_число_месяца_года (напр 31.05.2004), а date2 = 1_число_следующего_месяца_года (напр 01.06.2004), то выдает в ответ 0 . Смотрел по getTime.. у обоих чисел возвращает ОДИНАКОВОЕ число милисекунд. В ЧЕМ ДЕЛО??? Кто-нибудь подскажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2004, 15:24 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
я тут поэксперемтировал и оказалось что ситуация еще хуже - если дни этих двух дат находятся в одном месяце, например 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 .... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:32 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
сорри немного ошибся - в августе же 31 день 01.09.2004 - 31.08.2004 = 0 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:36 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
короче месяцы в жаваскрипте начинаются с 0 .. 11 т.е. 0 - январь, 11 - декабрь ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:41 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
Ага... такое ощущение, что разработчики где-то очень сильно ошиблись при реализации функции получения UnixTimeStamp. И как теперь с этим бороться? И кому по голове за это настучать? :-) По началу грешил на Винду, но... PHP под виндой с виндовым апачем все корректно обрабатывают... Что же теперь, все данные при вводе форм постить на сервер, а потом в случае ошибки возвращать обратно? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:48 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
Итого имеем: 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 ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:51 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
Понял, шеф... Спасиба... Но кому-то за это голову оторвать надо бы, тебе не кажется??? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 11:56 |
|
JavaScript и даты - странные вещи творятся
|
|||
---|---|---|---|
#18+
Итого имеем: 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 ... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.06.2004, 12:01 |
|
|
start [/forum/topic.php?fid=59&msg=32542413&tid=2154080]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
79ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 184ms |
0 / 0 |