公司的业务是做直播的,因此主播完成直播之后,要知道每位主播的直播时长,根据直播时长来结算工资。在做的过程中,遇到了一个问题,就是如何将秒转化为时分秒。想了一会,写了如下的函数来解决问题:
/**
* 将秒数转化为时分秒
*/
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;
}
道理很简单,从大的时间段往小的时间段递减。先算出小时数,余下的小时数再去算分钟数,分钟数算完,如果还有剩余就是秒数。当然此方法也可以扩展算年 月 日 时分秒的应用。