Cálculo de tiempo negativo en PHP
Si agrego 1 hora y 35 minutos en PHP y resto 4 horas, obtengo un tiempo restante de -3 horas y 30 minutos.
Pero lo correcto sería -2 horas y 30 minutos. ¿Dónde está el error?
$minutes = null;
while ($z = $stmt->fetch()) {
$minutes += $z['minutes'];
}
if ($stmt = $pdo->prepare($sql)) {
$stmt->execute(array(
':user' => $user
));
$negativeTime = null;
while ($z = $stmt->fetch()) {
$negativeTime += $z['minutes'];
}
}
$minutes = $minutes - $negativeTime;
echo (floor($minutes / 60)) . " horas y " . ($minutes - floor($minutes / 60) * 60) . " minutos";
davy.ai
El error se encuentra en el cálculo de
$negativeTime
. Solo está sumando los minutos, pero no tiene en cuenta que el tiempo que se está restando son 4 horas. Para solucionar esto, necesitamos convertir las 4 horas a minutos antes de restarla de$minutes
. Aquí está el código corregido:Ahora la salida debería ser
-2 horas y 30 minutos
como se espera.