Объект 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);

Похожие посты

Руководство по сортировке массивов в JavaScript

Сортировка — обычная задача при работе с массивами. Она будет использоваться, например, если вы захотите отобразить названия городов или регионов в алфавитном порядке. JavaScript массив (array) имеет встроенный метод sort() для сортировки элементов массива в алфавитном порядке. Следующий пример демонстрирует, как это работает: Реверсирование массива Вы можете использовать метод reverse(), чтобы изменить порядок элементов массива…

Руководство по массивам в JavaScript

Массивы — это сложные переменные, которые позволяют нам хранить группы значений под одним именем переменной. Массивы JavaScript могут хранить любое допустимое значение, включая строки, числа, объекты, функции и даже другие массивы, что позволяет создавать более сложные структуры данных, такие как массив объектов или массив массивов. Предположим, вы хотите сохранить название цветов в своем коде JavaScript….

Руководство по работе с атрибутами DOM в JavaScript

Атрибуты — это специальные слова, используемые внутри начального тега HTML-элемента для управления поведением тега или предоставления дополнительной информации о теге. JavaScript предоставляет несколько методов для добавления, удаления или изменения атрибутов HTML-элемента. В этом разделе мы узнаем об этих методах подробно. Получение значения атрибута элемента Метод getAttribute() используется для получения текущего значения атрибута элемента. Если указанный…

Насколько публикация полезна?

Нажмите на звезду, чтобы оценить!

Средняя оценка 5 / 5. Количество оценок: 1

Оценок пока нет. Поставьте оценку первым.