我计算两个日期之间的差异(当前日期和数据库中的日期)。我想显示日期之间的天数和小时数之间的差异,但是当天差为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小时(因为两个月)。
无法使用我找到的其他代码。提前谢谢!
答案 0 :(得分: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)));