2013-08-08 2 views
0

Я хочу, чтобы получить идеальное время, затраченное или общее время от времени начала до конца времени:
Моего код:Как рассчитать время, затраченное времени от начала до конца времени в PHP

$start_time = $this->input->post('start_time'); 
    $end_time = $this->input->post('end_time'); 


    $t1 = strtotime($start_time); 
    $t2 = strtotime($end_time); 
    $differenceInSeconds = $t2 - $t1; 
    $differenceInHours = $differenceInSeconds/3600; 

    if($differenceInHours<0) { 
    $differenceInHours += 24; 
    } 

В коде выше, если $start_time = 11:00:00 PM и $end_date =11:30:00 он дает мне результат 0.5 вместо 30minutes. Есть ли подходящий способ сделать это так?
Так, если:

$start_time = '01:00:00 PM'; 
    $end_time = '01:25:00 PM'; 

    $total = '25:00'; // 25 minutes 

или:

$start_time = '11:00:00 PM'; 
    $end_time = '11:00:25 PM'; 

    $total = '00:00:25'; // 25seconds 

С уважением!

ответ

4

Попробуйте diff функция

<?php 
echo date_create('03:00:00 PM')->diff(date_create('03:25:00 PM'))->format('%H:%i:%s'); 
?> 

Выход


00:25:00 
1

Попробуйте использовать diff:

echo date_create('01:00:00 PM')->diff(date_create('01:25:00 PM'))->format('%H:%i:%s'); 
0

Вы можете использовать strtotime() для расчета времени. Вот пример:

$start_time = strtotime('09:00:59'); 
$end_time = strtotime('09:01:00'); 
$diff = $start_time - $end_time; 
echo 'Time 1: '.date('H:i:s', $start_time).'<br>'; 
echo 'Time 2: '.date('H:i:s', $end_time).'<br>'; 

if($diff){ 
    echo 'Diff: '.date('H:i:s', $diff); 
}else{ 
    echo 'No Diff.'; 
} 

Выход:

Time 1: 09:00:59 
Time 2: 09:01:00 
Diff: 00:00:01 
0

Вы должны проверить все, используя если и другое заявление. Я думаю, что эта помощь.

$start_time = "11:00:00"; 
$end_time = "12:30:00"; 


    $t1 = strtotime($start_time); 
    $t2 = strtotime($end_time); 
    $difference = $t2 - $t1; 


    if($difference/3600 > 0){ 
    $hour = $difference/3600; 
    $hour = (int)$hour; 

    $difference = $difference - ($hour * 3600); 

    }else{ 
    $hour = "00"; 
    } 

    if($difference/60 > 0){ 
     $min = $difference/60; 

     $difference = $difference - ($min * 60); 

    }else{ 
     $min = "00"; 
    } 
    function checkString($str){ 
     if(strlen($str)==1){ 
     return "0".$str; 
    } 
    return $str; 
    } 
    print_r(checkString($hour).":".checkString($min).":".checkString($difference)); 
Смежные вопросы