Ресурсы: Документация по Date Статья
Data - специфический объект со своими методами и свойствами.
Создание нового объекта даты:
Код
const now = new Date();
console.log(now);
Таким образом, в переменной сохраняется текущая дата и время в таком формате:
Цитата
2023-06-25T07:04:24.243Z
здесь
T - разделитель, слева дата, справа - время до миллисекунд
В дату мы можем передавать какие-то аргументы, например, дату в виде строки:
Код
const now = new Date('2023-01-21');
const now = new Date.parse('2023-01-21'); // равнозначно строке выше, только с методом parse
В консоли получаем:
Цитата
2023-01-21T00:00:00.000Z
В правой части нули по дефолту, так как мы не передавали время как аргумент.
Можно указывать так:
Код
const now = new Date(2023,1,21,20);
Здесь 20 - какое-то количество часов.
Месяцы в дата считаются с 0, то есть 0 - это январь. Поэтому в консоли будет февраль:
Цитата
2023-02-21T17:00:00.000Z
Мы задали 20 часов, но в консоли отображается 17. Часовой пояс +3, поэтому по Гринвичу будет 17.
Можно передавать количество миллисекунд, которое будет преобразовано в дату.
Любая дата в JavaScript хранится в миллисекундах. Это значение называется
тайм-стемп Цитата
Количество миллисекунд отсчитывается с начала 1970-го года, убедимся:
Код
const now = new Date(0);
Цитата
1970-01-01T00:00:00.000Z
То есть, все даты отсчитываются от этой.
Поэтому, при необходимости, любую дату можно преобразовать в миллисекунды и наоборот.
Чтобы получить дату до 1970-го года, используются отрицательные значения миллисекунд:
Код
const now = new Date(-999999999999);
Цитата
1938-04-24T22:13:20.001Z
Методы получения компонентов даты
Код
const now = new Date();
console.log(now.getFullYear()); // 2023
console.log(now.getMonth()); // текущий месяц, например, 5 это июнь
console.log(now.getDate()); // текущее число, по факту
getHours() получаем часы (0 - 23)
getMinutes() получаем минуты (0 - 59)
getSeconds() получаем секунды (0 - 59)
getMilliseconds() получаем миллисекунды (0 - 999)
getDay() день недели (0 - 6, где 0 - это воскресенье)
Все эти методы возвращают значения в соответствии с местным часовым поясом.
Часовой пояс по UTC, то есть, +0, аналогично:
Получить разницу между часовым поясом и UTC позволяет метод:
Код
getTimezoneOffset(); // в минутах, например -180
Определяем тайм-стемп (количество миллисекунд, прошедшее с 1 января 1970 года):
например:
Код
console.log(now.getTime()); // 1687679876951
Если полученное число поместить в
new Data(), получим дату:
Код
const now = new Date(1687679876951);
console.log(now); // 2023-06-25T07:57:56.951Z
Методы-сеттеры (для установки даты)
Код
const now = new Date();
now.setHours(18);
Методы те же, только
get меняем на
set и устанавливаем значение.
Можно сразу установить часы и минуты:
Код
now.setHours(18, 40);
Даты можно использовать для измерения каких-то промежутков времени:
Код
let start = new Date();
Далее будет выполняться какое-то действие, у которого нам нужно засечь время, например, работа цикла:
Код
for (let i = 0; i < 100000; i++) {
let some = i**3; // возведение в степень
}
И нам нужно засечь время, через которое наш цикл закончит работу
Код
let end = new Date();
Теперь можно узнать разницу этих двух дат в миллисекундах:
Код
console.log(`Цикл отработал за ${end - start} миллисекунд`);
Цитата
Цикл отработал за 25 миллисекунд
Добавлять комментарии могут только зарегистрированные пользователи.