Работа с Датой в JS
1. Класс Date
Работа с промежутками времени - это одна из наиболее популярных задач: часы, календари и прочее. JavaScript предоставляет класс Date, который абстрагирует большую часть работы с датами напрямую. Это позволяет нам представлять моменты во времени и манипулировать ими всего несколькими строками кода.
2. Создание даты
Создание даты очень просто. Просто создайте новый экземпляр встроенного класса Date.
const date = new Date();
console.log(date); // Mon Mar 19 2018 16:51:32 GMT+0200 (FLE Standard Time)
CopyПоскольку не были переданы аргументы, будет создана текущая дата и время. Тем не менее, можно дополнительно передать строку или число в Date и результатом будет объект, описывающий указанную дату и время.
2.1. Datestring
Если передать строку, она будет обработана методом Date.parse(), чтобы вернуть объект Date.
Допустим необходимо создать событие на дату 4 марта 2017 года.
const date = new Date('March 4, 2017');
console.log(date); // Sat Mar 04 2017 00:00:00 GMT+0200 (FLE Standard Time)
Copy2.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