2013-08-07 2 views
1

Как я могу получить общий час от времени начала до конца.Как получить общий час от времени начала до конца времени в php

$start_time = '11:00:00 PM'; // as of 07/08/2013 
    $end_time = '01:00:00 AM'; // as of 08/08/2013 

Тогда вывод должен быть:

$total = '02:00:00'; // 12 hour format 
+0

Эта ссылка может иметь решение вы ищете: http://stackoverflow.com/questions/5463549/subtract-time-in-php – sgbj

+0

Дата :: diff неточно. Когда у меня есть приведенное выше, это дает мне неправильный вывод – leonardeveloper

+0

Вы ограничены только поставкой часов? Если вы можете указать даты вместе со временем, тогда вы получите результат, который вы ищете. Пример: echo date_create ('07/08/2013 11:00:00 PM ') -> diff (date_create ('08/08/2013 01:00:00 AM)) -> формат ('% h '); – sgbj

ответ

2

Вы можете преобразовать строки даты в значение времени, а затем вычесть, чтобы получить разницу в секундах между двумя, а затем просто разделить на 3600, чтобы получить разницу в часах:

$t1 = strtotime('2013-08-07 23:00:00'); 
$t2 = strtotime('2013-08-08 01:00:00'); 
$differenceInSeconds = $t2 - $t1; 
$differenceInHours = $differenceInSeconds/3600; 
+0

Я использую только timepicker, дата не включена в поле ввода. – leonardeveloper

+0

Имея это задание '$ start_time' = 11:00:00 PM и' $ end_time' = 01:00:00 AM. Это дает мне -22 выход – leonardeveloper

+0

ОК, добавьте эту строку в конец: if ($ differenceInHours <0) {$ differenceInHours + = 24; } – mti2935

0

Вы можете проверить этот пост от StackOverflow, который похож на ваш вопрос

Calculate total hours between 2 time stamps

Приветствия.

+0

формат времени в том, что только «HH: mm», и у меня есть форматирование «HH: mm: ss» – leonardeveloper