Создадим объект даты и поместим в переменную:
Код
const now = new Date();
Таким образом мы узнаем текущую дату и время, выведем информацию в консоль:
Цитата
2026-01-31T06:17:29.008Z
При создании нового объекта даты, в скобки мы можем передавать различные аргументы:
Код
const now = new Date('2026-01-31');
console.log(now);
Цитата
2026-01-31T00:00:00.000Z
Можно передавать список параметров: год, месяц, число, часы, минуты, секунды
Код
const now = new Date(2026, 1, 31, 13);
console.log(now);
Цитата
2026-03-03T10:00:00.000Z
Месяцы в JS начинают отсчёт с нуля (например, 0 - это январь), нужно это учитывать.
Плюс, во входящих параметрах указывалось 13 часов, а в консоли вывелось 10 часов. Это произошло потому, что учитываются часовые пояса.
В консоли вывод по Гринвичу, у меня часовой пояс +3, получается 13 - 3 = 10 по Гринвичу.
Любая дата в JS хранится в миллисекундах. Это значение называется timestamp и им очень удобно оперировать.
Количество миллисекунд отсчитывается от начала 1970 года.
Чтобы убедиться, передадим в объект даты 0 миллисекунд:
Код
const now = new Date(0);
console.log(now);
Цитата
1970-01-01T00:00:00.000Z
Можно также в качестве аргумента передавать количество миллисекунд, которое потом преобразуется в дату.
Если нужно получить дату до 1970 года, используется отрицательное значение миллисекунд:
Код
const now = new Date(-58745424154);
console.log(now);
Цитата
1968-02-21T01:49:35.846Z
У объекта даты очень много полезных методов.
Получение компонентов даты: Код
const now = new Date();
console.log(now.getFullYear()); // 2026 - год
console.log(now.getMonth()); // 0 - месяц (январь)
console.log(now.getDate()); // 31 - число
console.log(now.getHours()); // 9 - часы
console.log(now.getMinutes()); // 44 - минуты
console.log(now.getSeconds()); // 13 - секунды
console.log(now.getMilliseconds()); // 987 - миллисекунды
Интересная особенность при получении дня недели, в этом случае нумерация дней начинается не с понедельника, а с воскресенья (это будет нулевой день).
Код
console.log(now.getDay()); // 6 - суббота
Все эти методы возвращают нам значения в соответствии с местным часовым поясом. Если нужно получить значения в формате UTC, то это делается таким образом:
Код
console.log(now.getHours()); // 9 - часы по местному поясу
console.log(now.getUTCHours()); // 6 - часы по UTC
А так можно получать разницу между часовым поясом и UTC ( в минутах):
Код
console.log(now.getTimezoneOffset()); // -180
Метод
getTime() будет нам возвращать таймстамп:
Код
console.log(now.getTime()); // 1769891097382
Его можно превратить в дату, если поместить внутрь
new Date() Код
const now = new Date(1769891097382);
console.log(now); // 2026-01-31T20:24:57.382Z
Всё перечисленное выше - это
методы-геттеры для получения чего-либо.
Теперь рассмотрим
методы-сеттеры, с помощью которых мы можем установить что-либо.
Например, чтобы установить часы:
Код
const now = new Date();
console.log(now.setHours(18)); // 1769873449681
console.log(now); // 2026-01-31T15:30:49.681Z
Консоль VSCode ориентируется на UTC-зону, а не на локальные данные системы компьютера, поэтому выводит отличное время.
Если же посмотреть результат в браузере, то он будет ориентироваться именно на локальные данные компьютера и время там будет другое.
Команды
set похожи на команды
get, заменяется только
get на
set.
При работе с датами используется также метод
parse(), вот эта конструкция:
Код
new Date.parse('2026-01-31');
вернёт нам такой же результат, как если бы мы выполнили вот эту команду:
Код
const now = new Date('2026-01-31');
Мы можем использовать даты для измерения каких-то промежутков времени.
За стартовую дату мы берём текущую дату:
Код
let start = new Date();
Далее у нас будет выполняться какой-то код, время выполнения которого нам и нужно засечь.
Код
for (let i = 0; i < 100000; i++) {
let some = i ** 3; // возведение в степень 3
}
Далее в переменную
end мы вновь помещаем текущую дату с временем:
Смотрим разницу этих двух дат в миллисекундах:
Код
console.log(`Цикл отработал за ${end - start} миллисекунд`);
Цитата
Цикл отработал за 6 секунд
Всего комментариев: 0