在线找到以下代码段,目前正在我的网络应用程序中使用它,但它返回时间,如“0:5:1”。我希望它将输出格式化为真实日期,即:00:05:01。
猜猜有一个令人尴尬的快速解决方案来解决这个问题。这是片段:
function getTimeDifference($start, $end) {
$uts['start'] = $start;
$uts['end'] = $end;
if( $uts['start']!==-1 && $uts['end']!==-1 )
{
if( $uts['end'] >= $uts['start'] )
{
$diff = $uts['end'] - $uts['start'];
if( $hours=intval((floor($diff/3600))) )
$diff = $diff % 3600;
if( $minutes=intval((floor($diff/60))) )
$diff = $diff % 60;
$diff = intval( $diff );
return $hours . ':' . $minutes . ':' . $diff;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
return FALSE;
}
非常感谢!
答案 0 :(得分:2)
尝试sprintf
return sprintf("%02:%02d:%02d", $hours, $minutes, $diff);
答案 1 :(得分:1)
您可以使用str_pad()
用“0”填充值。
return str_pad($hours, 2, "0", STR_PAD_LEFT); // turns '5' into '05'
答案 2 :(得分:0)
像
echo "Hours: " .sprintf( '%02d:%02d', $diff['hours'], $diff['minutes'] );
我在链接中看到了类似的功能