Как получить дату первого дня недели, зная номер недели?
Для примера, возьмем 10 неделю в году.
Предположим, на дворе 2023 год. Если посмотреть на календарь с номерами недель, то увидим, что в 10 неделю попадают дни начиная с 6 марта (пн) и заканчивая 12 марта (вс).
Как на языке javascript узнать, что первый день (пн) выбранной недели, это 6 марта?
В идеале, это должна быть функция, которая на вход получает номер недели, и возвращает строку с датой. Например, такую: "2023-03-06T00:00"
Ответы (1 шт):
Автор решения: mccrush
→ Ссылка
const dateByWeekNumber = (year, week) => {
// Cоздаём дату, гарантированно входящую в первую неделю.
const date = new Date(year, 0, 7);
// Откатываемся до первого четверга года
// По ГОСТ ИСО 8601-2001 первая неделя года должна содержать четверг
date.setDate(date.getDate() - (date.getDay() + 10) % 7);
// Переходим в нужную неделю
date.setDate(date.getDate() + (week - 1) * 7);
// Откатываемся до понедельника
date.setDate(date.getDate() - 3);
return date;
};
console.log(dateByWeekNumber(2023, 10));
// Date Mon Mar 06 2023 00:00:00 GMT+0300 (Москва, стандартное время)
console.log(dateByWeekNumber(2020, 1));
// Date Mon Dec 30 2019 00:00:00 GMT+0300 (Москва, стандартное время)
Ответ получен на сервисе https://qna.habr.com/q/1263658, дан пользователем @Rsa97