PHP负时间计算
PHP negative time calculation
如果我在 PHP 中加上 1 小时 35 分钟并减去 4 小时,我得到的剩余时间为 -3 小时 30 分钟。
但正确的应该是 -2 小时 30 分钟。哪里错了?
$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)) . " hours and " . ($minutes - floor($minutes / 60) * 60) . " minutes";
$minutes - floor($minutes/60)
为阳性。所以你得到的是 -3 小时 加上 30 分钟,即 -2:30.
您需要区别对待 $minutes
的正值和负值,以便小时和分钟都是距零的距离。使用 abs()
函数将时间转换为正数,执行计算,然后如果 $minutes
的原始值为负数,则将小时数显示为负数。
$sign = $minutes < 0 ? '-' : '';
$minutes = abs($minutes);
$hours = floor($minutes / 60);
$minutes = $minutes % 60;
echo "$sign$hours hours and $minutes minutes";
如果我在 PHP 中加上 1 小时 35 分钟并减去 4 小时,我得到的剩余时间为 -3 小时 30 分钟。
但正确的应该是 -2 小时 30 分钟。哪里错了?
$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)) . " hours and " . ($minutes - floor($minutes / 60) * 60) . " minutes";
$minutes - floor($minutes/60)
为阳性。所以你得到的是 -3 小时 加上 30 分钟,即 -2:30.
您需要区别对待 $minutes
的正值和负值,以便小时和分钟都是距零的距离。使用 abs()
函数将时间转换为正数,执行计算,然后如果 $minutes
的原始值为负数,则将小时数显示为负数。
$sign = $minutes < 0 ? '-' : '';
$minutes = abs($minutes);
$hours = floor($minutes / 60);
$minutes = $minutes % 60;
echo "$sign$hours hours and $minutes minutes";