Jump to content
  • 0

new Date() с 'нестандартными' параметрами


sigma77
 Share

Question

Всем привет,

Простой пример:


d1 = new Date(2012, 10, 17) // Sat Nov 17 2012 00:00:00 GMT+0400
d2 = new Date(2012, 16, 17) // Fri May 17 2013 00:00:00 GMT+0400

Т.е. d2 возвращает дату на 6 месяцев больше.

Аналогично и в меньшую сторону


d1 = new Date(2012, 2, 17) // Sat Mar 17 2012 00:00:00
d2 = new Date(2012, -4, 17) // Sat Sep 17 2011 00:00:00

Вообще, насколько так можно делать? :)

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

Вообще, насколько так можно делать? :)

Можно. Это вполне себе стандартное поведение для многих ЯП.

31 февраля тоже существует, это или 3-е, или 2-е марта.

Теперь пояснение, почему это работает. Так проще делать вычисления с датами. Вам нужно прибавить месяц и получить дату, которая будет через месяц. К примеру, сейчас 31 января, через месяц (примерно 30 дней), будет 2е мая, а не 28 или 29 февраля. Поэтому гораздо проще работать с временной математикой, если она позволяет нормализировать ранжирование дат.

Link to comment
Share on other sites

  • 0

Очень удобно таким макаром определять последний день месяца как нулевой день следующего. А также валидировать дату при вводе (собирать из частей согласно ожидаемому формату и форматировать по нему же — если получилось то же самое, значит, дата введена в этом правильном формате, если нет — значит, юзер что-то напутал). Так что фича очень полезная и, судя по вышесказанному, вполне документированная :)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy