Дата и время
- Дата и время в JavaScript представлены объектом
Date. Нельзя создать «только дату» или «только время»: объектыDateвсегда содержат и то, и другое. - Счёт месяцев начинается с нуля (да, январь – это нулевой месяц).
- Дни недели в
getDay()также отсчитываются с нуля, что соответствует воскресенью. - Объект
Dateсамостоятельно корректируется при введении значений, выходящих за рамки допустимых. Это полезно для сложения/вычитания дней/месяцев/недель. - Даты можно вычитать, и разность возвращается в миллисекундах. Так происходит, потому что при преобразовании в число объект
Dateстановится таймстампом. - Используйте
Date.now()для быстрого получения текущего времени в формате таймстампа.
Создание
new Date()Без аргументов – создать объект Date с текущими датой и временемnew Date(milliseconds)Создать объект Date с временем, равным количеству миллисекунд (тысячная доля секунды), прошедших с 1 января 1970 года UTC+0.new Date(datestring)Если аргумент всего один, и это строка, то из неё «прочитывается» дата.new Date(year, month, date, hours, minutes, seconds, ms)Создать объект Date с заданными компонентами в местном часовом поясе. Обязательны только первые два аргумента.
Получение компонентов даты
- getFullYear() - Получить год (4 цифры)
- getMonth() - Получить месяц, от 0 до 11.
- getDate() - Получить день месяца, от 1 до 31, что несколько противоречит названию метода.
- getHours(), getMinutes(), getSeconds(), getMilliseconds() - Получить, соответственно, часы, минуты, секунды или миллисекунды.
- getDay() Получить определённый день недели
- getTime() Для заданной даты возвращает таймстамп – количество миллисекунд, прошедших с 1 января 1970 года UTC+0.
- getTimezoneOffset() Возвращает разницу в минутах между UTC и местным часовым поясом:
Все вышеперечисленные методы возвращают значения в соответствии с местным часовым поясом.
Установка компонентов даты
- setFullYear(year, [month], [date])
- setMonth(month, [date])
- setDate(date)
- setHours(hour, [min], [sec], [ms])
- setMinutes(min, [sec], [ms])
- setSeconds(sec, [ms])
- setMilliseconds(ms)
- setTime(milliseconds) (устанавливает дату в виде целого количества миллисекунд, прошедших с 01.01.1970 UTC)
У всех этих методов, кроме setTime(), есть UTC-вариант, например: setUTCHours().
Автоисправление даты
Автоисправление – это очень полезная особенность объектов Date. Можно устанавливать компоненты даты вне обычного диапазона значений, а объект сам себя исправит.
let date = new Date(2013, 0, 32); // 32 Jan 2013 ?!?
alert(date); // ...1st Feb 2013!
Преобразование к числу, разность дат
Если объект Date преобразовать в число, то получим таймстамп по аналогии с date.getTime() Важный побочный эффект: даты можно вычитать, в результате получаем разность в миллисекундах.
Date.now()
Существует особый метод Date.now(), возвращающий текущую метку времени.
Семантически он эквивалентен new Date().getTime(), однако метод не создаёт промежуточный объект Date. Так что этот способ работает быстрее и не нагружает сборщик мусора.
Разбор строки с датой
Метод Date.parse(str) считывает дату из строки.
Формат строки должен быть следующим: YYYY-MM-DDTHH:mm:ss.sssZ, где:
- YYYY-MM-DD – это дата: год-месяц-день.
- Символ "T" используется в качестве разделителя.
- HH:mm:ss.sss – время: часы, минуты, секунды и миллисекунды.
- Необязательная часть 'Z' обозначает часовой пояс в формате +-hh:mm. Если указать просто букву Z, то получим UTC+0.
Возможны и более короткие варианты, например, YYYY-MM-DD или YYYY-MM, или даже YYYY.
Вызов Date.parse(str) обрабатывает строку в заданном формате и возвращает таймстамп (количество миллисекунд с 1 января 1970 года UTC+0). Если формат неправильный, возвращается NaN.
🚀 Источник: https://learn.javascript.ru/date