Как получить первый и последний день месяца
Короткий ответ
Метод modify() понимает выражения first day of и last day of:
<?php
$date = new DateTimeImmutable('2026-02-14');
echo $date->modify('first day of this month')->format('Y-m-d'), ' ';
echo $date->modify('last day of this month')->format('Y-m-d');Результат:
2026-02-01 2026-02-28Сколько дней в месяце
Символ t в формате даты — число дней месяца:
<?php
echo (new DateTimeImmutable('2024-02-01'))->format('t'), ' ';
echo (new DateTimeImmutable('2026-02-01'))->format('t');Результат:
29 28Следующий месяц
К дате в конце месяца не прибавляйте +1 month — 31 января превратится в начало марта. Используйте first day of next month:
<?php
$date = new DateTimeImmutable('2026-01-31');
echo $date->modify('+1 month')->format('Y-m-d'), ' ';
echo $date->modify('first day of next month')->format('Y-m-d');Результат:
2026-03-03 2026-02-01Функции из этого ответа
- DateTimeImmutable — Объект даты и времени, который нельзя изменить: каждое действие возвращает новый объект.
- date — Форматирует дату и время.
- strtotime — Превращает текстовое описание даты в метку времени.