datetime — разница во времени PHP отображается только когда не ноль

Я рассчитываю разницу между двумя датами (текущая дата и дата в базе данных). Я хочу отобразить разницу в днях и часах между датами, но когда разница в днях равна 0, я не хочу отображать ее. Это мой код:

<?php
$to_time = new \DateTime($database_time);
$from_time = new \DateTime();
echo $from_time->diff($to_time)->format("%d %H");
?>

Вывод должен быть, например:

 > 50 days and 4 hours
> 1 day and 7 hours //and not 1 dayS
> 6 hours //and not 0 days and 6 hours

С моим собственным кодом есть две проблемы: во-первых, он всегда отображает количество дней. Второй — это просто формат. Например, если разница составляет 2 месяца, 6 дней и 2 часа, отображается: 6 дней и 2 часа. Но это должно быть 68 дней и 2 часа (из-за двух месяцев).

Не могу заставить его работать с другими кодами, которые я нашел. Заранее спасибо!

-1

Решение

Попробуй это..

   $seconds = strtotime("2012-10-10 02:40:03") - strtotime("2010-12-25 05:15:02");

echo $days    = floor($seconds / 86400);
echo "</br>";
echo $hours   = floor(($seconds - ($days * 86400)) / 3600);
echo "</br>";
echo $minutes = floor(($seconds - ($days * 86400) - ($hours * 3600))/60);
echo "</br>";
echo $seconds = floor(($seconds - ($days * 86400) - ($hours * 3600) - ($minutes*60)));
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]