Как получить день недели
Короткий ответ
getDay() возвращает число от 0 до 6, где 0 — воскресенье:
const date = new Date(2025, 2, 15);
console.log(date.getDay());Результат:
6Название дня
toLocaleDateString() с параметром weekday возвращает название на нужном языке:
const date = new Date(2025, 2, 15);
console.log(date.toLocaleDateString('en-US', { weekday: 'long' }));
console.log(date.toLocaleDateString('de-DE', { weekday: 'short' }));Результат:
Saturday
SaПонедельник как день 1
Во многих странах неделя начинается с понедельника. Сдвиньте номера так, чтобы понедельник был 1, а воскресенье — 7:
const isoDay = (date) => date.getDay() || 7;
console.log(isoDay(new Date(2025, 2, 16)));
console.log(isoDay(new Date(2025, 2, 17)));Результат:
7
1Частая ошибка
getDate() и getDay() легко перепутать. Первый — это число месяца:
const date = new Date(2025, 2, 15);
console.log(date.getDate(), date.getDay());Результат:
15 6Функции из этого ответа
- Date.prototype.getDay — Возвращает день недели — число от 0 до 6, где 0 — воскресенье.
- Date.prototype.toLocaleDateString — Форматирует дату без времени по правилам языка.