PHP DateTime - как посчитать количество дней между датами не учитывая часы и минуты
Иногда необходимо посчитать количество дней между двумя датами, при этом у каждой даты еще хранится точное время - часы/минуты/секунду.
Из-за того, что функция diff принимает в расчет и точное время, то результат бывает не всегда такой, на который мы рассчитываем (если нам нужно только даты, без каких-либо данных о времени).
Решение:
Самое простое, просто обнулить данные о часах и минутах (можно предварительно записать в другую переменную, чтобы не стерлось у оригинала):
$d1 = new DateTime($date1); // $date1 & $date2 - даты с данными о времени
$d2 = new DateTime($date2);
$d1->settime(0,0);
$d2->settime(0,0);
$difference = $d1->diff($d2)->format("%a");
Комментарии