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

标签 php mysql date

我有一个 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>

最佳答案

您不能对字符串进行数学运算(即使它们被格式化为时间)。您需要使用正确的数据类型,这里可以使用 DateTime 对象(或通过将过程 date()strtotime() 结合使用的时间戳)。

<?php 
$start = new DateTime($rows['disp_time']);
$end = new DateTime($rows['at_base']);
$diff = $start->diff($end);
echo $diff->format("%H:%I:%S");

或者使用过程strtotime()date()

<?php 
echo date("H:i:s", strtotime($rows['disp_time']) - strtotime($rows['at_base']));

关于php - PHP 计算中的值四舍五入到最接近的 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287752/

相关文章:

php - 在数据库中创建3个表(检索数据php/mysql)

php - 如何将json数组数据插入mysql?

php - 如果他的帐户未激活,则将用户重定向到一个页面

mysql - 我应该把它分成一个字段还是mysql中的多个字段?

mysql - 连接同一张表中的两条sql语句

java - 日期解析不起作用

php - 如何在提交按钮中设置多种字体颜色

MySQL:如何更新随机选择的 50% 的行?

java - 检查 html 代码中的日期

java - 如何在 Java 中创建日期选择器?