Работа с Датой в JS
1. Класс Date
Работа с промежутками времени - это одна из наиболее популярных задач: часы, календари и прочее. JavaScript предоставляет класс Date
, который абстрагирует большую часть работы с датами напрямую. Это позволяет нам представлять моменты во времени и манипулировать ими всего несколькими строками кода.
2. Создание даты
Создание даты очень просто. Просто создайте новый экземпляр встроенного класса Date
.
Поскольку не были переданы аргументы, будет создана текущая дата и время. Тем не менее, можно дополнительно передать строку или число в Date
и результатом будет объект, описывающий указанную дату и время.
2.1. Datestring
Если передать строку, она будет обработана методом Date.parse()
, чтобы вернуть объект Date
.
Допустим необходимо создать событие на дату 4 марта 2017 года
.
2.2. 7 аргументов
Другой способ создания новых объектов Date
— это передать 7 чисел. Эти числа описывают год, месяц, день, час, минуту, секунду и миллисекунду.
Последние 4 аргумента необязательны.
3. Unix время
В области информатики существует концепция эпохи Unix. Этот момент времени установлен на полночь 1 января 1970 года в часовом поясе UTC.
С учетом этой системы отсчета, если вы передаете число объекту Date
, это число представляет собой количество миллисекунд, прошедших с тех пор.
Чтобы увидеть число миллисекунд от этой даты до текущего момента, используется статический метод Date.now()
.
Удобство этого формата заключается в том, что можно представлять точные моменты времени в виде одного числа и не беспокоиться о датах, строках и часовых поясах, так как можно получить всю необходимую информацию когда необходимо.
4. Методы Date
Экземпляр класса Date
имеет множество методов как для получения значений даты и времени, так и для установки значений в объект. Методы возвращают или присваивают год, месяц, день месяца или недели, час, минуту, секунду и миллисекунду для каждого экземпляра. Эти данные могут быть представлены в виде строки с учетом местного календаря или языка.
4.1. Геттеры
Вот все методы получения информации из объекта Date
:
Давайте поэкспериментируем:
4.2. Сеттеры
Все, что можно прочитать можно записать, методы для записи начинаются с set*
.
5. Форматирование и вывод дат
Во всех браузерах, кроме IE10-
, поддерживается новый стандарт, который добавляет специальные методы для форматирования дат.
Это делается вызовом date.toLocaleString(locale, opts)
, в котором можно задать много настроек. Он позволяет указать, какие параметры даты нужно вывести и ряд настроек вывода, после чего интерпретатор сам сформирует строку.
5.1. Методы вывода без локализации
toString()
, toDateString()
, toTimeString()
возвращают стандартное строчное представление, не заданное жёстко в стандарте, а зависящее от браузера. Единственное требование к нему — читаемость человеком. Метод toString()
возвращает дату целиком, toDateString()
и toTimeString()
— только дату и время соответственно.
6. Дополнительные материалы
Last updated