2010-01-12 2 views
0

Нашел следующий фрагмент онлайн и в настоящее время использует его в своем веб-приложении, однако он возвращает время как «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

Уже предоставлено: пожалуйста, подтвердите ответ Павла http://stackoverflow.com/questions/2049531/reformat-php-date-compare-function/2049563#2049563 – Sampson

+0

Ну да, это было в значительной степени там, где у меня была функция. благодаря – Industrial

Смежные вопросы