Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将分钟转换为小时&;PHP中的分钟数和负分钟数?_Php_Mysql_Time_Date Arithmetic - Fatal编程技术网

如何将分钟转换为小时&;PHP中的分钟数和负分钟数?

如何将分钟转换为小时&;PHP中的分钟数和负分钟数?,php,mysql,time,date-arithmetic,Php,Mysql,Time,Date Arithmetic,我到处找了,但找不到一个具体的答案可以帮助我 我正在努力解决这个问题。我们有一个系统,员工可以累积和使用时间来代替。因此,在MySQL DB im中,记录分钟数,以及添加或删除时间 然后,我有一个函数,计算当前欠员工或业务的分钟数,如果员工欠业务时间,有时会导致负数 我使用此函数将总分钟数转换为小时和分钟数。但是,当有-15分钟时,函数返回为-1小时-15分钟。我理解发生这种情况的原因,但无法找到阻止它的方法 function convertTime() { $args = func_get_a

我到处找了,但找不到一个具体的答案可以帮助我

我正在努力解决这个问题。我们有一个系统,员工可以累积和使用时间来代替。因此,在MySQL DB im中,记录分钟数,以及添加或删除时间

然后,我有一个函数,计算当前欠员工或业务的分钟数,如果员工欠业务时间,有时会导致负数

我使用此函数将总分钟数转换为小时和分钟数。但是,当有-15分钟时,函数返回为-1小时-15分钟。我理解发生这种情况的原因,但无法找到阻止它的方法

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()
的返回值是多少?这很好。非常感谢:)