2014-01-11 78 views
2

我看到处处都找不到具体的答案,可以帮助我。如何将分钟转换为PHP和负数分钟的小时和分钟?

我正在努力解决这个问题。我们有一个系统,员工可以积累和使用时间代替。因此,在MySQL数据库即时记录分钟数量,并且天气它被添加或删除。

然后,我有一个函数,可以计算当前欠工作人员或企业的分钟数,这可能会偶尔导致负数 - 如果员工欠了营业时间。

我使用此函数,然后将总分钟数转换为小时数和分钟数。但是,如果有-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]; 
} 
} 

我很欣赏任何帮助!

+0

什么是'func_get_args()'的回报? –

回答

0

的问题是,楼舍你想要做的是对零轮。据我所知,没有单一的功能,要做到这一点,但是这会工作:

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的答案!