PHP 计算中四舍五入到最接近 1 的值

我有一个 PHP 代码,它使用我数据库中的数据并给我一个值。该代码运行良好,但存在十进制问题,将其四舍五入为最接近的 1


这是我的时间格式输入值


输入 1 09:21:00 输入 2 09:51:00 值应该是 00:30:00 但它给我的值为 0


这是我的代码


<? echo $rows['at_base'] - $rows['disp_time']; ?>

如果我将输入 2 的值更改为 10:00:00 那么它会给我 1


如果我能得到一个类似于这个 00:30:00 的值会很棒,甚至值 1.3


<tr>

                <td align="center"><? echo $rows['disp_time']; ?></td>

                <td align="center"><? echo $rows['on_scene']; ?></td>

                <td align="center"><? echo $rows['leave_scene']; ?></td>

                <td align="center"><? echo $rows['at_base']; ?></td>

                <td align="center"><? echo $rows['at_base'] - $rows['disp_time']; ?></td>

                <td align="center"><? echo $rows['close_km'] - $rows['open_km']; ?></td>

            </tr>


一只名叫tom的猫
浏览 145回答 3
3回答

慕后森

您不能对字符串进行数学运算(即使它们被格式化为时间)。您需要使用正确的数据类型,这里可以使用 DateTime 对象(或使用程序date()with 的时间戳strtotime())。<?php&nbsp;$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&nbsp;echo date("H:i:s", strtotime($rows['disp_time']) - strtotime($rows['at_base']));现场演示https://3v4l.org/8cJQM

HUWWW

您可以像这样使用日期功能$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”,这是您的要求

潇湘沐

简单的解决方案是date_default_timezone_set('UTC'); // if you set utc, we get exact difference b/w times$start = strtotime($rows['at_base']);$end&nbsp; = strtotime($rows['disp_time']);$diff =&nbsp; abs($end-$start);echo date('H:i:s',$diff);
打开App,查看更多内容
随时随地看视频慕课网APP