Дата и время 24-часовой формат Получить разницу в PhP

У меня две даты в формате 24 часа

$fulldate_hour_start = "2013-11-11 18:16:00 "; $fulldate_hour_end = "2013-11-11 23:30:00 "; 

и я вычитал их, используя это

 $Hours = number_format((((strtotime($fulldate_hour_end) - strtotime($fulldate_hour_start)) / 60) / 60),2); 

и результат составляет 5 часов и 23 минуты. это должно быть 5 часов и 14 минут. Какая у меня ошибка?

Попробуй это :

 $date1 = new DateTime("2013-11-11 18:16:00"); $date2 = new DateTime("2013-11-11 23:30:00"); $interval = $date1->diff($date2); echo "difference " . $interval->h . " Hours, " . $interval->i." Mintues, ".$interval->s." seconds "; 

Вы делите на 3600 для преобразования от секунд до часов, а затем с помощью number_format для рендеринга результата с двумя десятичными знаками.

Результатом выражения было:

 5.23 

Это действительно примерно 5 часов и 14 минут. (Помните, что час имеет 60 минут.)

Вместо этого вы должны сохранить значение в секундах, а затем использовать функцию, чтобы преобразовать ее в читаемый человеком формат . Одна из возможностей – date_diff ; связанный вопрос SO имеет много других.

Поскольку час состоит из 60, а не 100, минут, 5,23 часа составляет 5 часов и 13,8 минут. 0,2-часовое несоответствие связано с округлением реального значения до двух десятичных знаков, чтобы получить 0,23.

 0.23 * 60 = 13.8