公司的業務是做直播的,因此主播完成直播之后,要知道每位主播的直播時長,根據直播時長來結算工資。在做的過程中,遇到了一個問題,就是如何將秒轉化為時分秒。想了一會,寫了如下的函數來解決問題:
/**
* 將秒數轉化為時分秒
*/
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;
}
道理很簡單,從大的時間段往小的時間段遞減。先算出小時數,余下的小時數再去算分鍾數,分鍾數算完,如果還有剩余就是秒數。當然此方法也可以擴展算年 月 日 時分秒的應用。
