Я рассчитываю разницу между двумя датами (текущая дата и дата в базе данных). Я хочу отобразить разницу в днях и часах между датами, но когда разница в днях равна 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 часа (из-за двух месяцев).
Не могу заставить его работать с другими кодами, которые я нашел. Заранее спасибо!
Попробуй это..
$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)));
Других решений пока нет …