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");

Комментарии

Комментариев пока нет, вы можете оставить свой: