Найти тему
CyberHaus

Дата и время в JavaScript

Для работы с датой и временем в JavaScript есть специальный объект Date(). В этой статье мы рассмотрим методы объекта Date().

Создать объект даты в JavaScript можно при помощи ключевого слова new.

В конструктор объекта можно передать дату, которую требуется установить. Данный параметр является не обязательным. Если создать объект даты без параметров, будет инициализирована текущая дата, установленная в системе.

создание объекта Date()
создание объекта Date()

Получить компоненты даты

Как вы могли заметить, дата выводится в не привычном формате и в таком виде тяжела для восприятия. Для того чтобы дата приняла более естественный вид, необходимо получить каждый компонент даты в отдельности, а затем сформировать строку. Для получения отдельных компонентов даты у объекта Date есть специальные методы: getDate – для получения числа, getMonth – для получения месяца, getFullYear – для получения года, getDay – для получения дня недели.

получение компонентов даты
получение компонентов даты

Как видите, уже лучше, но всё же что-то не то. Месяц сейчас апрель, это четвертый по счету месяц, а у нас отображается третий. Дело всё в том, что счет месяцев в объекте Date начинается с нуля, а не с единицы, т. е. 0 – январь, 1 – февраль … 11 – декабрь. В остальном, вроде, всё в порядке, число соответствует действительности, день недели сейчас пятница и у нас пятый день недели. Но тут есть подвох. Дело в том, что дни недели тоже начинаются с нуля, а совпало у нас потому, что в JavaScript первый день не понедельник а воскресенье. Давайте для начала сделаем правильный вывод месяца.

приводим дату в надлежащий вид
приводим дату в надлежащий вид

Вот теперь дата приобрела привычный вид, но давайте ещё улучшим нашу дату и сделаем отображение месяца и дня недели прописью. Для этого нам потребуются два массива: в одном будут названия месяцев, а в другом будут названия дней недели в сокращенном виде.

улучшаем отображение даты
улучшаем отображение даты

Вывод времени

Для того чтобы отобразить время, нам потребуется, как и в случае с выводом даты, сначала получить отдельно часы, минуты, секунды и, если потребуется, то и миллисекунды. Сформируем строку, после чего выведем её. Для получения компонентов времени у объекта Date есть следующие методы:

getHours() – получить час;

getMinutes() – получить минуты;

getSeconds() – получить секунды;

getMilliseconds() – получить миллисекунды.

получение компонентов времяни
получение компонентов времяни

Как можно заметить, время отображается не вполне корректно, поэтому надо добавить проверку так же, как мы это делали при выводе даты.

добиваемся правильного отображения времени
добиваемся правильного отображения времени

Теперь всё в порядке.

Установка значений даты и времени

Если возникает необходимость изменить дату или время, то для этого у объекта Date есть специальные методы:

setDate – устанавливает число;

setMonth – устанавливает месяц;

setFullYear – устанавливает год;

setHours – устанавливает час;

setMinutes – устанавливает минуты;

setSeconds – устанавливает секунды;

setMilliseconds – устанавливает миллисекунды.

устанавливаем новые значения даты
устанавливаем новые значения даты

Как получить последнее число предыдущего месяца?

Бывает необходимо получить последнее число предыдущего месяца. У объекта Date на такой случай нет никакого специального метода, но можно поступить следующим образом. Создать объект Date и в конструктор передать год, месяц, последнее число которого требуется узнать, при этом увеличив его на единицу, чтобы получить следующий месяц, а вместо числа передать ноль. В этом случае мы получим дату последнего числа предыдущего месяца.

получаем последнее число предыдущего месяца
получаем последнее число предыдущего месяца