Часто бывает необходимо получить доступ или произвести вычисления с датой и временем в программах на JavaScript. Чтобы справиться с такими ситуациями, в язык встроено несколько инструментов даты. В частности, JavaScript предоставляет объект Дата, который предоставляет способы создания новых дат и несколько методов для работы с ними. Даты в JavaScript имеют встроенную функциональность для работы с датой и временем в формате UTC (всемирное координированное время).
Создание дат
Объект даты имеет несколько различных способов создания новой даты с помощью конструктора:
- указав части данных даты - год, месяц, дату, часы, минуты, секунды и миллисекунды
- с числом, представляющим отметку времени
- со строкой даты
- вызывая конструктор без каких-либо параметров, который вернет текущую дату и время
// Using date parts let july4thDate = new Date(2021, 6, 4, 0, 0, 0); // 2021-07-04T04:00:00.000Z
// using a time stamp number let dateInThe1990s = new Date(721484611197); // 1992-11-11T12:23:31.197Z
// using a date string let newYearsDate2000 = new Date('2000-01-01'); // 2000-01-01T00:00:00.000Z
// Date constructor without any parameters let currentDate = new Date(); // 2021-07-28T15:12:42.769Z
При создании новой даты с использованием частей даты необходимо учитывать несколько важных моментов для каждого параметра.
- год - обязательное целое число, представляющее год. Значения 0–99 будут добавлены к 1900. Например, 88 соответствует 1988 году.
- месяц - обязательное значение индекса от 0 до 11, соответствующее каждому месяцу в году. Например, значение индекса 3 даст месяц 4 (или апрель).
- день - необязательное целое число, представляющее день месяца (по умолчанию - 1).
- часы - необязательное целое число, представляющее час дня (0 - полночь).
- минут - необязательное целое число, представляющее минуты времени.
- секунды - необязательное целое число, представляющее секунды времени.
- миллисекунды - необязательное целое число, представляющее миллисекунды времени.
Некоторые примеры создания дат с частями даты:
new Date(2021, 0, 12); // 2021-01-12T05:00:00.000Z
new Date(1999, 11, 31, 12, 59, 59); // 1999-12-31T17:59:59.000Z
new Date(2009, 5, 20, 10, 30, 15, 232); // 2009-06-20T14:30:15.232Z
Создание новой даты с помощью конструктора Date без каких-либо параметров эквивалентно вызову статического метода Date.now()
и вернет текущую дату и время. После создания новой даты с помощью конструктора возвращается объект даты, который затем может использовать многие методы экземпляра, доступные для объекта Date.
Работа с датой и временем
Объект Date предоставляет методы для получения и установки всех частей экземпляра Date, включая:
- Полный год
- Месяц
- Дата
- Часы
- Минуты
- Секунды
- Миллисекунды
Эти методы можно использовать с формулировкой get
или set
перед каждым ключевым словом. Методы set
требуют передачи целого числа в качестве параметра.
let myDate = new Date(2009, 5, 20, 10, 30, 15, 232);
myDate.getFullYear(); // 2009 myDate.setFullYear(2021); // 1624199415232 myDate.getFullYear(); // 2021
myDate.getDate(); // 20
Есть еще один метод getDay()
, который возвращает целое число от 0 до 6, представляющее день недели.
myDate.getDay(); // 0 (Sunday)
Есть несколько других полезных методов, доступных для использования с объектом Date
.
- getTime () - возвращает число, представляющее отметку времени.
- valueOf () - как и
getTime()
, возвращает число, представляющее отметку времени. - toString () - возвращает полностью отформатированную строку даты и времени.
- toDateString () - возвращает форматированную строку даты.
- toTimeString () - возвращает отформатированную строку времени.
- toLocaleDateString () - возвращает локально чувствительную строку даты.
- toLocaleTimeString () - возвращает локально чувствительную строку времени.
let myDate = new Date(2009, 5, 20, 10, 30, 15, 232);
myDate.getTime(); // 1245508215232
myDate.valueOf(); // 1245508215232
myDate.toString(); // 'Sat Jun 20 2009 10:30:15 GMT-0400 (Eastern Daylight Time)'
myDate.toDateString(); // 'Sat Jun 20 2009'
myDate.toTimeString(); // '10:30:15 GMT-0400 (Eastern Daylight Time)'
myDate.toLocaleDateString(); // '6/20/2009'
myDate.toLocaleTimeString(); // '10:30:15 AM'
Заключение
Используя множество ресурсов, доступных с объектом Date, можно создавать предварительно отформатированные строки даты или выполнять вычисления даты и времени, чтобы найти такую информацию, как время, прошедшее между двумя датами, или дни недели для значений дат. Хотя у Date
object есть некоторые ограничения, такие как отсутствие поддержки часовых поясов и форматирования строк даты иным способом, чем несколько встроенных методов форматирования, работа с датами не так уж сложна. Ресурсы, доступные для работы с датами в JavaScript, могут обрабатывать множество различных ситуаций, возникающих при работе с датами и временем.
Больше контента на plainenglish.io