Для установки времени понедельника текущей недели в JavaScript, мы можем воспользоваться объектом Date
и сделать некоторые математические операции.
Первым шагом, мы должны получить текущую дату и время с использованием объекта Date
. Для этого мы создадим новый экземпляр Date
и присвоим его переменной currentDate
.
let currentDate = new Date();
Далее, мы должны получить информацию о текущем дне недели, чтобы определить, насколько дней нам нужно отступить назад до понедельника. JavaScript предоставляет метод getDay()
, который возвращает номер дня недели (воскресенье - 0, понедельник - 1, вторник - 2, и так далее).
let currentDayOfWeek = currentDate.getDay();
Затем, мы должны вычислить, сколько дней нам нужно отступить назад, чтобы достичь понедельника текущей недели. Для этого вычтем номер текущего дня недели из 1 (понедельник - 1).
let daysToSubtract = currentDayOfWeek - 1;
Теперь мы можем создать новый объект Date
, вычтя из текущей даты и времени количество миллисекунд, соответствующее количеству дней, которые мы хотим отступить назад. Мы также установим время в 00:00.
let mondayThisWeek = new Date(currentDate.getTime() - (daysToSubtract * 24 * 60 * 60 * 1000)); mondayThisWeek.setHours(0, 0, 0, 0);
Теперь переменная mondayThisWeek
будет содержать объект Date
, соответствующий понедельнику текущей недели с временем равным 00:00.
В результате, в переменной mondayThisWeek
будет храниться объект Date
с нужным значением даты и времени.
Полный код:
let currentDate = new Date(); let currentDayOfWeek = currentDate.getDay(); let daysToSubtract = currentDayOfWeek - 1; let mondayThisWeek = new Date(currentDate.getTime() - (daysToSubtract * 24 * 60 * 60 * 1000)); mondayThisWeek.setHours(0, 0, 0, 0); console.log(mondayThisWeek);
Обратите внимание, что значения даты и времени в JavaScript представляются в миллисекундах. Поэтому было выполнено вычисление, умножая количество дней на количество миллисекунд, которые содержатся в одних сутках.