Mike_Ro
@Mike_Ro
Python, JS, WordPress, SEO, Bots, Adversting

Как правильно задать Date() в JS?

Приветствую!

Пытаюсь разобраться в логике работы объекта Date(). С получением настоящей даты и времени проблем нет, но до конца не понимаю, как правильно задавать свою дату и время...

Дата:
let date = new Date(2000, 1, 1, 0, 0, 0, 0);
console.log(date); // 2000-01-31T21:00:00.000Z

1. Хочу задать 2000 год, 1 месяц и 1 день:
2. Год 2000 > 2000 - вопросов нет.
3. Месяц 1 > 01 - вопросов нет.
4. День 1 > 31 - почему?

Дата + время:
let date = new Date(2000, 1, 1, 10, 20, 40, 80);
console.log(date); // 2000-02-01T07:20:40.080Z

5. Хочу задать 2000 год, 1 месяц, 1 день, 10 часов, 20 минут, 40 секунд и 80 миллисекунд:
6. Год 2000 > 2000 - вопросов нет.
7. Месяц 1 > 02 - почему?
8. День 1 > 01 - вопросов нет.
9. Час 10 > 07 - почему?
10. Минуты, секунды и миллисекунды - вопросов нет.

Спасибо!
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
7. Месяц 1 > 02 - почему?
Потому что в js месяцы считаются от ноля - единица в конструкторе обозначает февраль.

9. Час 10 > 07 - почему?
Потому что часовой пояс UTC.

3. Месяц 1 > 01 - вопросов нет.
4. День 1 > 31 - почему?
Потому что 0 часов 0 минут первого февраля в вашем часовом поясе - это ещё 31-е января по UTC.

https://learn.javascript.ru/datetime
https://developer.mozilla.org/en-US/docs/Web/JavaS...

Именно из-за таких закидонов в мире javascript и существуют тысячи библиотек для работы с датами.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы