无法在 php 中减去两个小时

Can't subtract two hours in php

我正在尝试减去两个小时,这是我的代码(crono() 减去两个小时):

include("classes/Functions.php");//contains crono()
include("classes/database.php");//database connection

$selectActual = "SELECT * from InfActual WHERE state='on'";
$resultActual = $conn->query($selectActual);
if ($resultActual->num_rows > 0) {
    while ($rowActual = $resultActual->fetch_assoc()) {
        $horaIni = $rowActual['horaIni'];
        $actual = date("h:i:s");
        echo "horaini: ".$horaIni." actual: ".$actual."<br>";
        echo "subtract: ".crono($hora, $actual)."<br>";
    }
}

这是结果

horaini: 05:41:25 actual: 05:53:43
subtract: 05:53:43

我认为问题是 $rowActual['horaIni']$actual 的格式不一样(我不太确定),我不知道如何解决这个问题。

[已解决]

echo "subtract: ".crono($horaIni, $actual)."<br>";

为什么不在 sql 中进行呢?

SELECT *, horaini - INTERVAL 2 HOUR AS horaini2

在 php 中,您将使用 strtotime()

date('H:i:s', strtotime($rowActual['horaIni']) - 60 * 60 * 2);

使用strtotime

echo date("h:i:s", strtotime($actual."-2 hour"));
<?php

$oldDate = date('Y-m-d h:i:sa');
$newDate = date('Y-m-d h:i:sa', strtotime('-2 hours'));

echo $oldDate;
echo "<BR>";
echo $newDate;

?>

这应该可以解决问题

对不起,我太笨了,我没有在crono()函数中使用$horaIni。非常抱歉。