Php将秒转换为仅具有所需值的可读格式
我在下面有这个函数Php将秒转换为仅具有所需值的可读格式,php,Php,我在下面有这个函数 function secondsToTime($seconds) { $dtF = new DateTime("@0"); $dtT = new DateTime("@$seconds"); return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds'); } 例如,上面的函数172秒返回到下面 0 days, 0 hours, 2 minut
function secondsToTime($seconds) {
$dtF = new DateTime("@0");
$dtT = new DateTime("@$seconds");
return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');
}
例如,上面的函数172秒返回到下面
0 days, 0 hours, 2 minutes and 52 seconds
但我希望它是唯一的
2 minutes and 52 seconds
或者如果少于60秒,则应忽略分钟
$seconds=172;
function sec_to_time($seconds) {
$hours = floor($seconds / 3600);
$minutes = floor($seconds % 3600 / 60);
$seconds = $seconds % 60;
if($hours>0)
{
return sprintf(" %d hours %02d , minutes %02d , seconds", $hours, $minutes, $seconds);
}
else if($minutes>0)
{
return sprintf("%02d minutes , %02d seconds", $minutes, $seconds);
}
else
{
return sprintf("%02d seconds", $seconds);
}
}
echo sec_to_time($seconds);
或根据您的更新功能更新新答案
function secondsToTime($seconds) {
$dtF = new DateTime("@0");
$dtT = new DateTime("@$seconds");
$a=$dtF->diff($dtT)->format('%a');
$h=$dtF->diff($dtT)->format('%h');
$i=$dtF->diff($dtT)->format('%i');
$s=$dtF->diff($dtT)->format('%s');
if($a>0)
{
return $dtF->diff($dtT)->format('%a days, %h hours, %i minutes and %s seconds');
}
else if($h>0)
{
return $dtF->diff($dtT)->format('%h hours, %i minutes and %s seconds');
}
else if($i>0)
{
return $dtF->diff($dtT)->format(' %i minutes and %s seconds');
}
else
{
return $dtF->diff($dtT)->format('%s seconds');
}
}
echo secondsToTime(172);
如果函数中没有天数,那么返回值如何包含天数?很抱歉,看到我更新的函数这只是返回2:52?我需要2分钟,52分钟seconds@Devaki阿鲁马米thanx@DevakiArulmami现在检查答案。根据您的新功能进行更新