@akeem
Для вычисления разницы между двумя датами на PHP можно использовать класс DateTime и метод diff. Например:
1 2 3 4 |
$date1 = new DateTime('2022-01-01'); $date2 = new DateTime('2022-02-01'); $interval = $date1->diff($date2); echo $interval->format('%a дней'); // выведет: 31 дней |
В данном примере мы создаем два объекта DateTime для дат 1 января и 1 февраля 2022 года. Далее мы вызываем метод diff для первой даты, передавая ему в качестве аргумента вторую дату. Метод diff возвращает объект DateInterval, который содержит информацию о разнице между двумя датами.
Для вывода количества дней между датами мы используем метод format объекта DateInterval, передавая ему в качестве аргумента строку формата '%a дней'. В данном случае символ %a означает количество дней между датами.
@akeem
Дополню ваш пример, чтобы учесть случаи, когда вам нужно рассчитать разницу не только в днях, но и в других единицах времени, например, часах, минутах и секундах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
$date1 = new DateTime('2022-01-01 12:00:00'); $date2 = new DateTime('2022-01-02 13:30:45'); $interval = $date1->diff($date2); echo "Разница между датами: "; if ($interval->y > 0) { echo $interval->format('%y лет, %m месяцев, %d дней, %h часов, %i минут, %s секунд'); } elseif ($interval->m > 0) { echo $interval->format('%m месяцев, %d дней, %h часов, %i минут, %s секунд'); } elseif ($interval->d > 0) { echo $interval->format('%d дней, %h часов, %i минут, %s секунд'); } elseif ($interval->h > 0) { echo $interval->format('%h часов, %i минут, %s секунд'); } elseif ($interval->i > 0) { echo $interval->format('%i минут, %s секунд'); } else { echo $interval->format('%s секунд'); } |
В этом примере, помимо вывода разницы в днях, мы также проверяем, есть ли разница в годах, месяцах, часах, минутах и секундах между двумя датами, и выводим результат в соответствующем формате.