我正在尝试显示“天”,“小时”代码工作正常,但是问题是我不想显示0天。如果day = 0,则仅显示小时。
<?php
$datetime1 = new DateTime();
$datetime2 = new DateTime($feed['dt_date_added']);
$interval = $datetime1->diff($datetime2);
$elapsed = $interval->format('%a days %h hours');
echo $elapsed;
?>
输出:-0天5小时
预期产量:5小时
答案 0 :(得分:1)
您可以只检查天数是否为0,然后相应地调整输出格式。 DateInterval对象提供了“ d”属性,可让您查看天数(请参见documentation)。
$datetime1 = new DateTime();
$datetime2 = new DateTime($feed['dt_date_added']);
$interval = $datetime1->diff($datetime2);
$format = "%h hours";
if($interval->d > 0) $format = "%a days ".$format; //adjust the format according to the number of days
$elapsed = $interval->format($format);
echo $elapsed;
演示:http://sandbox.onlinephpfunctions.com/code/d01ae70566b1b4466664fcff8f7c70b261766c48
答案 1 :(得分:0)
您只需要检查日期是否为0:
$datetime1 = new DateTime();
$datetime2 = new DateTime($feed['dt_date_added']);
$interval = $datetime1->diff($datetime2);
$elapsed = $interval->format( $interval->format('%a') ? '%a days %h hours' : '%h hours' );
echo $elapsed;