Я использую 2 временную метку в моей таблице, которая является точкой отсчета времени начала и текущей меткой времени. конечная точка времени-времени и значение по умолчанию 0000-00-00 00:00:00
как рассчитать разницу между 2 метками времени в php starttime: 2016-11-30 03:55:06 endtimetime: 2016-11-30 11:55:06
Следует избегать любого процедурного способа. Используйте метод ООП для разницы во времени:
$datetime1 = new DateTime('2016-11-30 03:55:06');//start time $datetime2 = new DateTime('2016-11-30 11:55:06');//end time $interval = $datetime1->diff($datetime2); echo $interval->format('%Y years %m months %d days %H hours %i minutes %s seconds');//00 years 0 months 0 days 08 hours 0 minutes 0 seconds
Вы можете настроить формат разницы в соответствии с вашими потребностями.
%Y - use for difference in year %m - use for difference in months %d - use for difference in days %H - use for difference in hours (24 hour format) %i - use for difference in minutes %s - use for difference in seconds
Вы можете удалить любое из вышеуказанных значений в соответствии с вашими потребностями. Например, если вас интересует только часовая разница, и вы знаете, что разница не может превышать 24 часа, то используйте только %H
Если вы хотите иметь полную разницу в секундах, вы можете использовать:
echo $difference_in_seconds = strtotime('2016-11-30 11:55:06') - strtotime('2016-11-30 03:55:06');//28800
Зависит от вашей потребности и окончательного формата, в котором вы хотите иметь разницу во времени.
Для справки: http://php.net/manual/en/datetime.diff.php
Я надеюсь, что это помогает
Вы можете преобразовать отметки времени в временную метку unix (время в секундах), используя php strtotime, а затем принять разницу. Теперь у вас есть разница во времени в секундах и вы можете конвертировать в то, что вам нужно … часы, минуты, дни
http://php.net/manual/en/function.strtotime.php
например:
$ts1 = strtotime($start); $ts2 = strtotime($end); $seconds_diff = $ts2 - $ts1; $time = ($seconds_diff/3600);