Работа с датами в JS
Встроенный объект: Date предназначен для вывода текущей даты или для всевозможных манипуляций со временем: создание, хранение или изменение времени.
Создание текущей даты
Создадим переменную time и присвоим ей конструктор new Date(), чтобы создать какой-то объект даты. Если оставить скобки пустыми без аргументов, то мы получим текущую дату.
let time = new Date();
console.log( time ); // показывает текущие дату и время
// формат даты 2020-06-29T05:56:00.430Z
new Date() с аргументом в виде строки
При создании объекта даты мы можем передавать туда аргументы, например дату в виде строки. Такой вариант часто используется для тега input с атрибутом type="date". В консоли вывелась указанная в атрибутах дата и с нулевыми значениями времени.
let string = new Date('2020-06-29');
console.log( string );
// выведет формат даты 2020-06-29T00:00:00.000Z
new Date(миллисекунды)
Еще в аргументах можно передать количество миллисекунд, которые превратятся в дату. Все даты хранящиеся в JavaScript, на самом деле хранятся в миллисекундах. Это значение называется timestamp, которым легко и удобно манипулировать. Количество миллисекунд ведет свой отсчет с 01.01.1970 года UTC+0, в чем можно легко убедиться, передав в аргументах 0 миллисекунд. Все даты, которые мы создаем, легко трансформируются в миллисекунды и обратно в даты.
let ms = new Date(0);
console.log( ms ); // 1970-01-01T00:00:00.000Z
Как же тогда получить дату до 1970 года? Для этого используем отрицательные значения миллисекунд.
let old_ms = new Date(-999999999999);
console.log( old_ms ); // 1938-04-24T22:13:20.001Z
У объекта даты есть много различных методов, рассмотрим наиболее часто используемые из них.
Как получить отдельные части даты
Метод getFullYear()
Получение года.
let year = new Date();
console.log(year.getFullYear()); // 2020
Метод getMonth()
Получение месяца от 0 до 11. Поскольку в программировании отсчет чисел начинается с 0, то мы получаем 7-ой месяц, несмотря на то, что сейчас август.
let month = new Date();
console.log(month.getMonth()); // 7
Метод getDate()
Получаем число месяца.
let date = new Date();
console.log(date.getDate()); // 29
Метод getDay()
Получаем номер дня недели от 0 (воскресение) до 6 (суббота), то есть нумерация первого дня недели начинается с воскресения.
let day = new Date();
console.log(day.getDay()); // 1
Остальные get() методы
Здесь мы соответственно получаем часы, минуты, секунды и миллисекунды.
let time = new Date();
console.log(time.getHours()); // 11
console.log(time.getMinutes()); // 7
console.log(time.getSeconds()); // 40
console.log(time.getMilliseconds()); // 816
Все эти методы привязаны на значения, исходя из локального часового пояса. Для получения времени в другом часовом поясе, существуют аналогичные методы. Необходимо у вышеперечисленных методов после "get" добавить "UTC".
let date = new Date();
// 11 часов в вашем часовом поясе
console.log( date.getHours());
// 8 часов в часовом поясе UTC+3
console.log( date.getUTCHours());
Как установить компоненты даты
Перейдем к методам, которые устанавливают компоненты даты и времени. Здесь используются все те же методы, только с приставкой "set" вместо "get" плюс передаем в аргументах часы, минуты, секунды и миллисекунды.
let now = new Date();
console.log(now.setHours(15)); // установка на 15 часов
console.log(now);
// Mon Jun 29 2020 15:39:17 GMT+0300 (Восточная Европа, летнее время)
Работа с датами является обязательным навыком, поскольку сталкиваться с датами и временем в процессе программирования, придется довольно таки часто. Например даты можно использовать для измерения времени работы функции, для создания таймеров и часов на сайте.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.