2010-01-12 39 views
0

在线发现以下代码片断,并且当前正在我的Web应用程序中使用它,但它返回的时间类似“0:5:1”。我希望它将输出格式化为一个真正的日期,即:00:05:01。重新格式化php日期比较功能

猜测有一个令人尴尬的快速解决方案来解决这个问题。这里是摘录:

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; 

} 

非常感谢!

回答

2

尝试sprintf

return sprintf("%02:%02d:%02d", $hours, $minutes, $diff); 
+0

感谢队友!它完美解决了! – Industrial

1

您可以使用str_pad()填充值为“0”。

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

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

我看到类似的功能链接

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

+0

已经提供:请upvote保罗的答案http://stackoverflow.com/questions/2049531/reformat-php-date-compare-function/2049563#2049563 – Sampson

+0

嗯,那几乎是我得到的功能。谢谢 – Industrial