Для работы с датой и временем в JavaScript есть специальный объект Date(). В этой статье мы рассмотрим методы объекта Date().
Создать объект даты в JavaScript можно при помощи ключевого слова new.
В конструктор объекта можно передать дату, которую требуется установить. Данный параметр является не обязательным. Если создать объект даты без параметров, будет инициализирована текущая дата, установленная в системе.
Получить компоненты даты
Как вы могли заметить, дата выводится в не привычном формате и в таком виде тяжела для восприятия. Для того чтобы дата приняла более естественный вид, необходимо получить каждый компонент даты в отдельности, а затем сформировать строку. Для получения отдельных компонентов даты у объекта 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 и в конструктор передать год, месяц, последнее число которого требуется узнать, при этом увеличив его на единицу, чтобы получить следующий месяц, а вместо числа передать ноль. В этом случае мы получим дату последнего числа предыдущего месяца.