PHP时间差仅在不为零时显示

时间:2015-05-22 12:04:54

标签: php datetime datetime-format

我计算两个日期之间的差异(当前日期和数据库中的日期)。我想显示日期之间的天数和小时数之间的差异,但是当天差为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 个答案:

答案 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)));