Встроенные объекты

Объект Date. Работа с датами

Последнее обновление: 26.10.2023

Объект Date позволяет работать с датами и временем в JavaScript.

Определение дат

Существуют различные способы создания объекта Date:

  • С помошью пустого конструктора Date без параметров. В этом случае созданный объект хранит текущие дату и время

    const currentDate = new Date();
    console.log(currentDate);	// Thu Oct 26 2023 13:17:53 GMT+0100
    
  • В конструктор Date передается количества миллисекунд, которые прошли с начала эпохи Unix, то есть с 1 января 1970 года 00:00:00 GMT:

    const myDate = new Date(1359270000000);
    console.log(myDate); // Sun Jan 27 2013 11:00:00 GMT+0400 (Москва, стандартное время)
    
  • В конструктор Date передаются день, месяц и год:

    const date1 = new Date("27 March 2008");
    console.log(date1); // Thu Mar 27 2008 00:00:00 GMT+0300 (Москва, стандартное время)
    // или так
    const date2 = new Date("3/27/2008");
    console.log(date2); // Thu Mar 27 2008 00:00:00 GMT+0300 (Москва, стандартное время)
    // или так
    const date3 = new Date("3 27 2008");
    console.log(date3); // Thu Mar 27 2008 00:00:00 GMT+0300 (Москва, стандартное время)
    

    Если мы используем полное название месяца, то оно пишется в по-английски, если используем сокращенный вариант, тогда используется формат "месяц/день/год" или "месяц день год".

  • Четвертый способ состоит в передаче в конструктор Date всех параметров даты и времени:

    const myDate = new Date(2012,11,25,18,30,20,10); 
    console.log(myDate); // Tue Dec 25 2012 18:30:20 GMT+0400 (Москва, стандартное время)
    

    В данном случае используются по порядку следующие параметры: new Date(год, месяц, число, час, минуты, секунды, миллисекунды). При этом надо учитывать, что отсчет месяцев начинается с нуля, то есть январь - 0, а декабрь - 11.

Получение даты и времени

Для получения различных компонентов даты применяется ряд методов:

  • getDate(): возвращает день месяца

  • getDay(): возвращает день недели (отсчет начинается с 0 - воскресенье, и последний день - 6 - суббота)

  • getMonth(): возвращает номер месяца (отсчет начинается с нуля, то есть месяц с номер 0 - январь)

  • getFullYear(): возвращает год

  • toDateString(): возвращает полную дату в виде строки

  • getHours(): возвращает час (от 0 до 23)

  • getMinutes(): возвращает минуты (от 0 до 59)

  • getSeconds(): возвращает секунды (от 0 до 59)

  • getMilliseconds(): возвращает миллисекунды (от 0 до 999)

  • toTimeString(): возвращает полное время в виде строки

Получим текущую дату:

const today = new Date(); 
console.log(today.getDate());		// 26
console.log(today.getDay());		// 4
console.log(today.getMonth());		// 9
console.log(today.getFullYear());	// 2023

Преобразуем данные в более читабельную форму:

const days = ["Воскресенье", "Понедельник", "Вторник", "Среда", "Четверг", "Пятница", "Суббота"];
const months = ["Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", 
			"Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь"];

const today = new Date(); 
console.log(`Сегодня: ${today.getDate()} ${months[today.getMonth()]} ${today.getFullYear()}, ${days[today.getDay()]}`);
// Сегодня: 26 Октябрь 2023, Четверг

Перевести из числовых значений в более привычные названия для дней недели и месяцев используются массивы. Получив индекс дня недели (today.getDay()) и индекс месяца (today.getMonth()) можно получить нужный элемент из массива.

Теперь получим текущее время:

var welcome;
const myDate = new Date();
const hour = myDate.getHours();
const minute = myDate.getMinutes();
const second = myDate.getSeconds();

console.log(`Текущее время: ${hour}:${minute}:${second}`); // Текущее время: 13:38:26

Установка даты и времени

Кроме задания параметров даты в конструкторе для установки мы также можем использовать дополнительные методы объекта Date:

  • setDate(): установка дня в дате

  • setMonth(): уставовка месяца (отсчет начинается с нуля, то есть месяц с номер 0 - январь)

  • setFullYear(): устанавливает год

  • setHours(): установка часа

  • setMinutes(): установка минут

  • setSeconds(): установка секунд

  • setMilliseconds(): установка миллисекунд

Установим дату:

const myDate = new Date();
myDate.setDate(14);
myDate.setMonth(10);	// ноябрь
myDate.setFullYear(2023); 
console.log(myDate); // Tue Nov 14 2023 13:41:20 GMT+0300 (Москва, стандартное время)

При установке значений мы можем передать величину, большую, чем максимальное допустимое значение. Например, установить для часа число 54:

myDate.setHours(54);

В этом случае значение часа будет равно 54 - 24 * 2 = 6, а оставшиеся часы будут составлять два дня (24 * 2), что прибавит к дате два дня. То же самое действует и в отношении дней, минут, секунд, миллисекунд и месяцев.

Помощь сайту
Юмани:
410011174743222
Перевод на карту
Номер карты:
4048415020898850