实测值下面的代码片断在线和当前正在使用它在我的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”。

要PADD值
return str_pad($hours, 2, "0", STR_PAD_LEFT); // turns '5' into '05'

echo "Hours: " .sprintf( '%02d:%02d', $diff['hours'], $diff['minutes'] );

我看到在链路相似的功能

http://www.gidnetwork.com/b-16.html

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top