Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить первый и последний день месяца

Короткий ответ

Первый день — это день 1. День 0 следующего месяца — последний день текущего:

const year = 2025;
const month = 1;
 
const first = new Date(year, month, 1);
const last = new Date(year, month + 1, 0);
 
console.log(first.toDateString());
console.log(last.toDateString());

Результат:

Sat Feb 01 2025
Fri Feb 28 2025

Число дней

Тот же приём даёт число дней в месяце:

const daysInMonth = (year, month) => new Date(year, month + 1, 0).getDate();
 
console.log(daysInMonth(2024, 1), daysInMonth(2025, 1), daysInMonth(2025, 11));

Результат:

29 28 31

Для текущего месяца

Возьмите год и месяц из сегодняшней даты:

const today = new Date();
const first = new Date(today.getFullYear(), today.getMonth(), 1);
 
console.log(first.getDate());

Результат:

1

Частая ошибка

Месяц в конструкторе считается с нуля. new Date(2025, 12, 0) — не ошибка: месяц 12 — это январь следующего года, а его день 0 — 31 декабря:

console.log(new Date(2025, 12, 0).toDateString());

Результат:

Wed Dec 31 2025

Функции из этого ответа

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.