2016-05-12 2 views
0

У меня есть функция php, которую я создал, которая форматирует время, прошедшее с итерацией, и в качестве входного параметра требуется обычная метка времени. Там нет никаких физических проблем, и она работает, как и ожидалось, на мой вопрос, есть ли способ упростить это ?:PHP функция времени форматирования времени обратного отсчета времени

PHP

function time_elapsed_string($difference) 
{  

    //Days 
    $days = round(($difference/86400), 2); 

    //Hours 
    $hours = floor($difference/3600); 
    if($hours >= 24) { 
     $remainderHours = fmod($hours, 24); // Get the remainder from the days. 

     if ($remainderHours < 10) { 
      $remainderHours = '0' . $remainderHours; 
     } 
    } else { 
     $remainderHours = $hours; 
     $days = 0; 


     if ($remainderHours < 10) { 
      $remainderHours = '0' . $hours; 
     } 
    } 

    //Minutes 
    $mins = floor($difference/60); 

    if ($mins >= 60){ 
     $remainderMins = fmod($mins, 60); 

     if ($remainderMins < 10) { 
      $remainderMins = '0' . $remainderMins; 
     } 
    } else { 
     $remainderMins = $mins; 
     if ($remainderMins < 10) { 
      $remainderMins = '0' . $remainderMins; 
     } 
    } 

    //Seconds 
    $seconds = floor($difference); 
    if($seconds >= 60) { 
     $remainderSeconds = fmod($seconds, 60); 

     if ($remainderSeconds < 10) { 
      $remainderSeconds = '0' . $remainderSeconds; 
     } 
    } else { 
     $remainderSeconds = $seconds; 
     if ($remainderSeconds < 10) { 
      $remainderSeconds = '0' . $remainderSeconds; 
     } 
    } 

    //Format day due to days being reset to 0 format in hours fuction 
    $days = (floor($days) < 10 ? ('0' . floor($days)) : floor($days)); 

    return $days . ':' . $remainderHours . ':' . $remainderMins  . ':' . $remainderSeconds; 
} 

ответ

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