имеется такой код для вычисления количества дней между двумя датами:
$datetime1 = date_create("2018-10-01");
$datetime2 = date_create("2018-10-31");
$interval = date_diff($datetime1, $datetime2);
$diff = $interval->format('%d');
for($i = 0; $i <= $diff; $i++){
$arr_days[] = date("d.m.Y", strtotime("2018-10-01 +$i day"));
}
var_dump($arr_days);
с помощью этого я пробегаю каждый день в году(использую модификатор t, в коде дата просто для примера), однако код работает не на всех месяцах.
на 1,2,4,6,8,9,11 месяцах работает как надо
на 3,5,7,10,12 месяцах в массиве только один элемент - первый день месяца.
отличился только 3й месяц, в массив почему то попало 3 дня.
если вписать 30 вместо 31, то всё сработает нормально, однако в этом месяце 31 день.
PHP 5.6.3
поведение совсем не очевидное, почему это происходит? есть какие то более надёжные средства вычисления дат?
Сборка персонального компьютера от Artline: умный выбор для современных пользователей