我在我看来有这张表
duty | exact | undertime
12:00:00 | 12:00:00 | 01:00:00
承诺是$hour = $duty - $exact
的结果,当我
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 ?>
答案 0 :(得分:1)
$duty=date_create("12:00:00");
$exact=date_create("12:00:00");
$diff=date_diff($duty,$exact);
echo $diff->format("%H:%i:%s");die;
答案 1 :(得分:0)
您可以将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');