公司的業務是做直播的,因此主播完成直播之后,要知道每位主播的直播時長,根據直播時長來結算工資。在做的過程中,遇到了一個問題,就是如何將秒轉化為時分秒。想了一會,寫了如下的函數來解決問題:
/** * 將秒數轉化為時分秒 */ public static function sec2Time($second){ if(!is_numeric($second)) return 0; $retarr = array('hours'=>0,'minutes'=>0,'seconds'=>0); if($second >= 3600){ $retarr['hours'] = floor($second/3600); $second = ($second%3600); } if($second >= 60){ $retarr['minutes'] = floor($second/60); $second = $second%60; } $retarr['seconds'] = floor($second); return $retarr; }
道理很簡單,從大的時間段往小的時間段遞減。先算出小時數,余下的小時數再去算分鍾數,分鍾數算完,如果還有剩余就是秒數。當然此方法也可以擴展算年 月 日 時分秒的應用。