2014-01-11 128 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的答案!