我的视图中有这个表
duty | exact | undertime
12:00:00 | 12:00:00 | 01:00:00
undertime为$hour = $duty - $exact
的结果,当i
echo date("H:i:s",$hour);
它返回了01:00:00,我期待这个是00:00:00。我错过了什么?
这是我的代码,我使用foreach,因为责任和确切的数据是从我的数据库查询。
<?php foreach($unique_date as $unique_dates):?>
<tr>
<td align="center" colspan="2">
<?php echo date($unique_dates['dtr_date']);?>
</td>
<td align="center" colspan="2">
<?php $timediffs = $unique_dates['timediffs'];
echo $timediffs;
?>
</td>
<td align="center" colspan="2">
<?php $exact_total_sched = $unique_dates['exact_total_sched'];
echo $exact_total_sched;
?>
</td>
<?php
$duty = strtotime($timediffs);
$exact = strtotime($exact_total_sched);
?>
<?php
if($duty < $exact)
{
echo "<td align='"center'" colspan='"2'">";
#UNDERTIME
$hour1 = $exact-$duty;
echo date("H:i:s",$hour1);
echo "</td>";
echo "<td align='"center'" colspan='"2'">";
echo date("00:00:00");
echo "</td>";
}
else if($duty > $exact)
{
echo "<td align='"center'" colspan='"2'">";
echo date("00:00:00");
echo "</td>";
echo "<td align='"center'" colspan='"2'">";
#OVERTIME
$hour2 = $duty-$exact;
echo date("H:i:s",$hour2);
echo "</td>";
}
else if($duty == $exact)
{
echo "<td align='"center'" colspan='"2'">";
$hour3 = $duty-$exact;
echo date("H:i:s",$hour3);
echo "</td>";
echo "<td align='"center'" colspan='"2'">";
echo date("00:00:00");
echo "</td>";
}
?>
</tr>
<?php endforeach ?>
$duty=date_create("12:00:00");
$exact=date_create("12:00:00");
$diff=date_diff($duty,$exact);
echo $diff->format("%H:%i:%s");die;
可以将DateTime
函数与date_diff
函数一起使用
$date1=new DateTime("12:00:00");
$date2=new DateTime("12:00:00");
$diff = date_diff($date2,$date1);
echo $diff->format('%H:%i:%s');