如何将分钟转换为小时&;PHP中的分钟数和负分钟数?
我到处找了,但找不到一个具体的答案可以帮助我 我正在努力解决这个问题。我们有一个系统,员工可以累积和使用时间来代替。因此,在MySQL DB im中,记录分钟数,以及添加或删除时间 然后,我有一个函数,计算当前欠员工或业务的分钟数,如果员工欠业务时间,有时会导致负数 我使用此函数将总分钟数转换为小时和分钟数。但是,当有-15分钟时,函数返回为-1小时-15分钟。我理解发生这种情况的原因,但无法找到阻止它的方法如何将分钟转换为小时&;PHP中的分钟数和负分钟数?,php,mysql,time,date-arithmetic,Php,Mysql,Time,Date Arithmetic,我到处找了,但找不到一个具体的答案可以帮助我 我正在努力解决这个问题。我们有一个系统,员工可以累积和使用时间来代替。因此,在MySQL DB im中,记录分钟数,以及添加或删除时间 然后,我有一个函数,计算当前欠员工或业务的分钟数,如果员工欠业务时间,有时会导致负数 我使用此函数将总分钟数转换为小时和分钟数。但是,当有-15分钟时,函数返回为-1小时-15分钟。我理解发生这种情况的原因,但无法找到阻止它的方法 function convertTime() { $args = func_get_a
function convertTime() {
$args = func_get_args();
switch (count($args)) {
case 1: //total minutes was passed so output hours, minutes
$time = array();
$time['hours'] = floor($args[0]/60);
$time['mins'] = ($args[0]%60);
return $time;
break;
case 2: //hours, minutes was passed so output total minutes
return ($args[0] * 60) + $args[1];
}
}
我感谢任何帮助 问题是地板向下舍入,你想做的是向零舍入。据我所知,没有单一的功能可以实现这一点,但这会起作用:
function convertTime() {
$args = func_get_args();
switch (count($args)) {
case 1: //total minutes was passed so output hours, minutes
$time = array();
$time['hours'] = $args[0] > 0 ? floor($args[0]/60) : ceil($args[0]/60);
$time['mins'] = ($args[0]%60);
return $time;
break;
case 2: //hours, minutes was passed so output total minutes
return ($args[0] * 60) + $args[1];
}
}
我添加了一个三元运算符,基本上说“如果分钟数大于零,则向下取整小时数。否则,向上取整小时数(接近零)。”
编辑:改用@s1lence的答案 如a中所述,您应该使用该函数来实现每个整数向0
的舍入
因此,将计算小时数的行更改为:
$time['hours'] = intval($args[0]/60);
func\u get\u args()
的返回值是多少?这很好。非常感谢:)