2016-08-11 10 views
0
$to = strtotime("2008-12-13 10:42:00"); 
$from = strtotime("2008-12-13 10:21:00"); 
echo round(abs($to_time - $from_time)/60,2). " minute"; 
echo round(abs($to_time - $from_time)/3600,2). " hours"; 

Он работает хорошо, когда я конвертирую в считанные минуты, но при преобразовании в часы он не дает правильного выхода.Как рассчитать разницу во времени

+1

Пожалуйста, объясните: «это не дает правильный вывод». Что вы ожидали, что вы получили? –

ответ

0

Это следует сделать это:

$from = new DateTime('2008-12-13 10:21:00'); 
$to = new DateTime('2008-12-13 10:42:00'); 

$diff = $to->diff($from); 
$hours = $diff->h;//hours 
$mins = $diff->i;//minutes 
echo $hours.':'.$mins; 

С выше $ Diff представляет собой массив, содержащий эти ключи:

DateInterval Object 
(
    [y] => 0 
    [m] => 0 
    [d] => 0 
    [h] => 0 
    [i] => 21 
    [s] => 0 
    [weekday] => 0 
    [weekday_behavior] => 0 
    [first_last_day_of] => 0 
    [invert] => 1 
    [days] => 0 
    [special_type] => 0 
    [special_amount] => 0 
    [have_weekday_relative] => 0 
    [have_special_relative] => 0 
) 
0

Я не знаю, что такое «правильный выход», который вы ожидаете.

21 minute 
0.35 hours 

Разница составляет 21 минуту, поэтому 0.35h является правильным.

В любом случае ваш код неправильно, вы используете $from_time и $to_time вместо $to и $from

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