题
实测值下面的代码片断在线和当前正在使用它在我的web应用程序,但是它返回时间,如“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;
}
非常感谢!
解决方案
尝试的sprintf
return sprintf("%02:%02d:%02d", $hours, $minutes, $diff);
其他提示
您可以使用str_pad()
与 “0”。
return str_pad($hours, 2, "0", STR_PAD_LEFT); // turns '5' into '05'
像
echo "Hours: " .sprintf( '%02d:%02d', $diff['hours'], $diff['minutes'] );
我看到在链路相似的功能
不隶属于 StackOverflow