@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 секунд');
}
|
В этом примере, помимо вывода разницы в днях, мы также проверяем, есть ли разница в годах, месяцах, часах, минутах и секундах между двумя датами, и выводим результат в соответствующем формате.