Комбинируя DateTime()
с strtotime()
, вы открыли себя для общей ошибки при работе с датами.При попытке конвертировать дату в формате дд / мм / гггг предполагается, что вы используете формат даты США, который является неправильным в мм / дд / гггг.Таким образом, 28/02/2019
становится The second day of the 28th month in the year 2019
, что не соответствует вашим намерениям.
Вы можете полностью избежать этого, продолжая использовать DateTime()
до конца и избегая ненужных преобразований формата.Код еще меньше!
<?php
$period = new DatePeriod(
new DateTime('27-02-2019'),
new DateInterval('P1D'),
new DateTime('03-03-2019')
);
foreach( $period as $date) { $array[] = $date->format('d-m-y');
$newDate = $date->format('d/m/Y'); // for example
echo "The date is " .$newDate." ";
$day = $date->format('l');
echo "The day is ".$day." \n"; ?>
<br>
<?}?>
Вывод:
The date is 27/02/2019 The day is Wednesday
The date is 28/02/2019 The day is Thursday
The date is 01/03/2019 The day is Friday
The date is 02/03/2019 The day is Saturday