3 回答
TA贡献1802条经验 获得超5个赞
您不能对字符串进行数学运算(即使它们被格式化为时间)。您需要使用正确的数据类型,这里可以使用 DateTime 对象(或使用程序date()with 的时间戳strtotime())。
<?php
$start = new DateTime($rows['disp_time']);
$end = new DateTime($rows['at_base']);
$diff = $start->diff($end);
echo $diff->format("%H:%I:%S");
现场演示https://3v4l.org/236Y9
或者使用程序strtotime()和date(),
<?php
echo date("H:i:s", strtotime($rows['disp_time']) - strtotime($rows['at_base']));
现场演示https://3v4l.org/8cJQM
TA贡献1874条经验 获得超12个赞
您可以像这样使用日期功能
$time1 = new DateTime('09:21:00');
$time2 = new DateTime('09:51:00');
$interval = $time1->diff($time2);
echo $interval->format('%H:%i:%S');
这将为您提供“00:30:00”,这是您的要求
TA贡献1816条经验 获得超6个赞
简单的解决方案是
date_default_timezone_set('UTC'); // if you set utc, we get exact difference b/w times
$start = strtotime($rows['at_base']);
$end = strtotime($rows['disp_time']);
$diff = abs($end-$start);
echo date('H:i:s',$diff);
- 3 回答
- 0 关注
- 144 浏览
添加回答
举报