如何在PHP中减去分钟数?
我想知道如何减去PHP中表示分钟数的两个变量 例如,我有两个分钟变量如何在PHP中减去分钟数?,php,Php,我想知道如何减去PHP中表示分钟数的两个变量 例如,我有两个分钟变量 $minutes1 = 20; $minutes2 = 45; $totalMinutes = $minutes1 -$minutes2; //output should be 35 as $totalMinutes 例如 $time1 = "2:20"; $time2 = "3:45"; $finalTime = $time2 - $time1 //final time = 1:25 我只对分钟感兴趣,对小时不感兴趣
$minutes1 = 20;
$minutes2 = 45;
$totalMinutes = $minutes1 -$minutes2;
//output should be 35 as $totalMinutes
例如
$time1 = "2:20";
$time2 = "3:45";
$finalTime = $time2 - $time1
//final time = 1:25
我只对分钟感兴趣,对小时不感兴趣编辑:根据评论,我对您的要求有了更好的理解,并编写了此函数
function subtractMinutes($start, $sub) {
$res = $start;
while ($sub > 0) {
if ($sub >= 60) {
$sub -= 60;
continue;
}
if ($res >= $sub) {
$res -= $sub;
break;
}
if ($sub > $res) {
$sub -= $res + 1;
$res = 59;
continue;
}
$sub -= $res;
$res = 0;
}
return $res;
}
var_dump(subtractMinutes(20, 45)); //35
var_dump(subtractMinutes(20, 60)); //20
var_dump(subtractMinutes(20, 120)); //20
var_dump(subtractMinutes(20, 121)); //19
var_dump(subtractMinutes(40, 40)); //0
var_dump(subtractMinutes(59, 58)); //1
我打赌有更干净的方法,但这似乎符合你的要求
$m1 = 20;
$m2 = 45;
$diff = $m1 - $m2;
echo $diff >= 0 ? $diff : $diff + 60;
这将返回35
。演示:
请注意,这个答案试图提供一个通用的解决方案。
如果你只需要减去几次,那就
与60核对
我坚持建议所有操作都应该使用小数,并且只有在页面上输出结果时才转换为正确的格式。我相信这样做更安全,而不是依赖于你每次都记得加减60
示例:
$single_minute = 1.66;
$twenty_minutes = 20*1.66 = 33.2;
$sixty_minutes = 60*1.66 = 99.6;
输出时:
$out_twenty = round(33.2/1.66);
$out_sixty = round(99.6/1.66);
您可以使用帮助器常量:
define("MINUTE", 1.66);
//You want to calculate 34 minutes
$thirtyfour_minutes = MINUTE * 34;
//You want to output 34 minutes
echo round($thirtyfour_minutes);
20分钟-45分钟=35分钟是怎么回事?@MagnusEriksson前一个小时已经过去了35分钟。比如2:20-45分钟=1:35你的问题真的需要弄清楚。我们猜不出你的意思,也不想假设。只需减去,如果小于零,则加60直到大于零,否则如果大于60,则为mod 60。在发布答案之前,请阅读问题的评论。45减20不等于35,正如你所说的是25。然而,OP的问题太不清楚了。OP的注释代码:
//输出值应为35美元totalMinutes
@Fred ii-问题写得很糟糕。他的意思是10:20-45分钟,等于09:35@GregKos我完全同意。我在评论发布之前就发布了,现在我正在更新答案@弗雷德二世-我认为35是一个打字错误,因此“我想你的意思是25”。那么“1:15”和“3:05”
,区别是70
分钟吗?@localheinz-考虑到OP只提到了分钟(当我写这个答案时),我只按分钟计算。在最初的问题中,OP根本没有提到任何时间。