Объект Date является встроенным объектом JavaScript. Это позволяет вам получить местное время пользователя, получая доступ к системным часам компьютера через браузер. Объект Date также предоставляет несколько методов для управления, манипулирования и форматирования даты и времени.
Создание объекта Date
Прежде чем мы начнем работать с датой и временем, нам нужно создать объект Date. В отличие от других встроенных объектов, таких как массивы или функции, даты не имеют соответствующей литеральной формы: все объекты даты должны быть созданы с использованием функции конструктора Date()
.
Существует четыре различных способа создания объекта Date в JavaScript.
Синтаксис new Date()
Вы можете просто объявить новый объект Date без инициализации его значения. В этом случае значение даты и времени будет установлено на текущую дату и время пользователя.
var d = new Date();
document.write(d);
Синтаксис new Date(year, month, …)
Вы также можете инициализировать объект Date, передав следующие параметры, разделенные запятыми: год, месяц, день, часы, минуты, секунды и миллисекунды.
Параметры года и месяца обязательные, остальные нет.
var d = new Date(2018,0,31,14,35,20,50);
document.write(d);
Эта дата фактически представляет 31 января 2018 года в 14:35:20 и 50 миллисекунд. Вы можете игнорировать часть времени и указать только часть даты, если хотите.
Синтаксис new Date(dateString)
JavaScript также позволяет создавать объект Date, передавая строку, представляющую дату, или дату и время, как показано в следующем примере:
var d = new Date("31 January 2018");
document.write(d);
Эта дата представляет собой 31 января 2018 года. Вы можете указать дату в любом допустимом варианте, например Jan 31 2018, JavaScript обработает это автоматически.
Синтаксис new Date(milliseconds)
Вы также можете определить объект Date, передав количество миллисекунд с 1 января 1970 года в 00:00:00 по Гринвичу. Это время известно как UNIX, потому что в 1970 год была создана операционная система UNIX. Вот пример:
var d = new Date(1517356800000);
document.write(d);
Эта дата представляет среду 31 января 2018 года 05:30:00 по Гринвичу (+05:30).
Создав экземпляр объекта Date, вы можете использовать его методы для выполнения различных задач, таких как получение различных компонентов даты, установка или изменение отдельных значений даты и времени и т. д. Эти методы подробно описаны ниже.
JavaScript предоставляет ярлыки, называемые литералами, для создания большей части собственного объекта без необходимости использования оператора new
, например new Object()
, new Array()
и т. д.
Получение текущей даты и времени
Чтобы получить текущую дату и время, создайте новый объект Date без передачи каких-либо параметров. Это создаст объект с текущей датой и временем. Вот пример:
var now = new Date();
alert(now); // Показать текущую дату и время
Создание строк даты и времени
Объект JavaScript Date предоставляет несколько методов, таких как toDateString()
, toLocaleDateString()
для генерации строк даты в разных форматах. Вот пример:
var d = new Date();
alert(d.toString()); // Mon Apr 15 2019 18:43:59 GMT+1000 (Владивосток, стандартное время)
alert(d.toDateString()); // Mon Apr 15 2019
alert(d.toLocaleString()); // 15.04.2019, 18:43:59
alert(d.toLocaleDateString()); // 15.04.2019
alert(d.toISOString()); // 2019-04-15T08:43:59.000Z
alert(d.toUTCString()); // Mon, 15 Apr 2019 08:43:59 GMT
Аналогично, вы можете использовать методы toLocaleTimeString()
, toTimeString()
объекта Date для генерации временных строк, как показано в следующем примере:
var d = new Date();
alert(d.toTimeString()); // 18:43:59 GMT+1000 (Владивосток, стандартное время)
alert(d.toLocaleTimeString()); // 18:43:59
Получение конкретных компонентов даты и времени
Если у вас есть подходящий объект даты, вам доступен ряд методов для его извлечения, например, значение месяца, даты, часов, минут и т. д. Теперь рассмотрим различные методы извлечения отдельных фрагментов информации из объекта Date.
Получение года, месяца и даты
Объект Date предоставляет несколько методов, таких как getFullYear()
, getMonth()
, getDay()
и т.д., которые можно использовать для извлечения определенных компонентов даты из объекта Date, таких как год, день месяца, день недели соответственно В следующем примере показано, как получить определенные компоненты даты из объекта Date с помощью этих методов:
var d = new Date();
// Извлечение части даты
alert(d.getDate()); // Показать день месяца
alert(d.getDay()); // Показать день недели (0-6)
alert(d.getMonth()); // Показать месяц года (0-11)
alert(d.getFullYear()); // Показать полный год (четыре цифры)
Метод getDay()
возвращает число, представляющее день недели (от 0 до 6), вместо возврата имени, такого как воскресенье или понедельник, таким образом, если день — воскресенье, метод возвращает 0; и если день — понедельник, метод возвращает 1 и так далее.
Аналогично, метод getMonth()
возвращает количество месяцев (от 0 до 11) вместо имени месяца. Здесь 0 представляет первый месяц года. Поэтому, если это январь, метод возвращается 0, а не 1; а если это август, метод возвращает 7.
Получение часов, минут, секунд и миллисекунд
Аналогично, объект Date предоставляет такие методы, как getHours()
, getMinutes()
, getSeconds()
, getTimezoneOffset()
и т. д. для получения компонентов времени из объекта Date.
var d = new Date();
// Извлечение части времени
alert(d.getHours()); // Показывает количество часов (0-23)
alert(d.getMinutes()); // Показывает количество минут (0-59)
alert(d.getSeconds()); // Показывает количество секунд (0-59)
alert(d.getMilliseconds()); // Показывает количество миллисекунд (0-999)
alert(d.getTime()); // Отображение количества миллисекунд с 01.01.1970
alert(d.getTimezoneOffset()); // Отображение смещения часового пояса (от среднего времени по Гринвичу) в минутах
Метод getHours()
возвращает количество часов в дне (от 0 до 23) согласно 24-часовым часам. Когда наступает полночь, метод возвращает 0; в 3:00 дня метод возвращает 15.
У объектов Date также есть методы для получения компонентов UTC. Просто поместите UTC после get, например getUTCDate()
, getUTCHour()
, getUTCMinutes()
и так далее.
Установка значений даты и времени
Помимо получения значений даты и времени, вы также можете установить или изменить эти значения с помощью JavaScript. Это чаще всего используется в программе, где вам нужно изменить значение объекта даты с одной конкретной даты или времени на другую. Посмотрим, как это работает.
Установка года, месяца и даты
Объект Date предоставляет такие методы, как setFullYear()
, setMonth()
и setDate()
для установки компонентов год, месяц и дата объекта Date соответственно.
Например, в следующем примере мы используем метод setFullYear()
для изменения текущей даты, хранящейся в переменной, на два года вперед.
var d = new Date();
d.setFullYear(d.getFullYear() + 2);
alert(d); // Показать будущую дату
Аналогично, вы можете использовать метод setMonth()
для установки или изменения части месяца объекта Date.
var d = new Date(); // Текущая дата и время
d.setMonth(0); // Устанавливает месяц на 0, январь
document.write(d);
Метод setMonth()
требует целочисленного значения от 0 до 11, если вы установите значение месяца больше 11, значение года объекта даты будет увеличиваться.
Другими словами, значение 12 приводит к тому, что значение года увеличивается на 1, а значение месяца устанавливается на 0, как показано в следующем примере:
var d = new Date(2018, 5, 24); // 24 июня, 2018
d.setMonth(12); // Устанавливает месяц на 12, новая дата будет 24 января 2019
document.write(d);
Точно так же вы можете изменить часть даты:
var d = new Date(2018, 5, 24); // June 24, 2018
d.setDate(15); // Устанавливает день 15, новая дата будет 15 июня 2018
document.write(d);
Метод setDate()
требует целочисленного значения от 1 до 31. Кроме того, если вы передадите значения, превышающие количество дней в месяце, месяц будет увеличиваться. Например:
var d = new Date(2018, 5, 24); // 24 июня, 2018
d.setDate(36); // Устанавливает день 36, новая дата будет 6 июля 2018
document.write(d);
Установка часов, минут и секунд
Методы установки значений времени также довольно просты. setHours()
, setMinutes()
, setSeconds()
, setMilliseconds()
могут использоваться для установки часов, минут, секунд и миллисекунд части объекта Date соответственно.
Каждый метод принимает целочисленные значения в качестве параметров. Часы варьируются от 0 до 23. Минуты и секунды от 0 до 59. А миллисекунды от 0 до 999. Вот пример:
var d = new Date(2018, 5, 24); // 24 июня, 2018 00:00:00
d.setHours(8);
d.setMinutes(30);
d.setSeconds(45);
d.setMilliseconds(600);
document.write(d);