Как l oop через первый и последний день текущего месяца в php? - PullRequest
1 голос
/ 04 февраля 2020

Я прохожу ответ на этот вопрос , чтобы l oop через первый и последний день текущего месяца в php.

Я скопировал и вставил тот же код из ответа на этот вопрос, но он ничего не возвращает (пусто).

<?php 
    $current_month_first_day = date('Y-m-01'); // first day of the current month
    $current_month_last_day  = date('m-t-Y');  // last day of the current month
    $interval = DateInterval::createFromDateString('1 day');
    $period = new DatePeriod($current_month_first_day, $interval, $current_month_last_day);
?>  

Постановка проблемы:

Мне интересно, какие изменения я должен внести в код php, приведенный выше, чтобы в нем отображался список дат (февраль) С 1 по 29 февраля) за текущий месяц. Мой код покажет даты в формате ввода.

1 Ответ

2 голосов
/ 04 февраля 2020

Вы неправильно генерируете входные данные для конструктора DatePeriod. Первый вход должен быть объектом DateTime, а третий - целым числом (или другим объектом DateTime). Используя первую форму конструктора (с третьим параметром целое число, представляющее число повторений), вы можете изменить свой код на этот, чтобы он работал:

$current_month_first_day = new DateTime('first day of this month'); // first day of the current month
$current_month_last_day  = date('t');  // last day of the current month
$interval = new DateInterval('P1D');
$period = new DatePeriod($current_month_first_day, $interval, $current_month_last_day - 1);

Демонстрация на 3v4l.org

...