我有一个函数,可以将秒转换为Hours:Minutes:seconds 格式
function sec2hms ($sec)
{
$hms = "";
$hours = intval(intval($sec) / 3600);
$minutes = intval(($sec / 60) % 60);
$seconds = intval($sec % 60);
$hms .= str_pad($hours, 2, "0", STR_PAD_LEFT). ":";
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ":";
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
return $hms;
}
如何更改此函数,以便删除第一分钟位置以外的所有前导数字?
例如
sec2hms(9) //returns 0:09
sec2hms(123) //returns 2:03
sec2hms(5941)//returns 1:39:01
只需在分钟内不使用str_pad()函数即可。它添加了前导零。
function sec2hms ($sec)
{
$hms = "";
$hours = intval(intval($sec) / 3600);
$minutes = intval(($sec / 60) % 60);
$seconds = intval($sec % 60);
if($hours)
$hms .= $hours. ":";
$hms .= $minutes. ":";
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
return $hms;
}
您有自己的代码。
函数str_pad在左侧填充0。去掉那个函数。
$hms = $hours.':'.$minutes.':'.$seconds;
这是我刚刚编写的函数
function secondsToHHMMSS ($sec)
{
$hms = "";
$hours = intval(intval($sec) / 3600);
$minutes = intval(($sec / 60) % 60);
$seconds = intval($sec % 60);
if($hours != 0){
$hms .= $hours . ":";
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT) . ":";
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
}
else{
$hms .= $minutes . ":";
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
}
return $hms;
}
试着返回这个,而不是:
return ltrim(substr($hms, 0, 4), ':0').substr($hms, 4);