Intereting Posts
Обрезаемая фатальная ошибка: объект класса PDOStatement не может быть преобразован в строку в /home/refined/public_html/refer.php в строке 30 Laravel FatalErrorException в строке Handler.php 25 Magento – программно создавать пользовательский атрибут продукта через установочный скрипт Шаблон WordPress – «Ловкая фатальная ошибка: объект класса __PHP_Incomplete_Class не может быть преобразован в строку» Отладка конфигурации PHP зависает – Ожидание сеанса XDebug (57%) Игнорировать слэш при использовании шифрования в кодеигниторе Как асинхронно запускать скрипт PHP из другого скрипта PHP? populate select from other select value, используя jquery почему мои php-файлы отображаются как обычный текст? Laravel 4 внутри Wamp не работает Smarty: как ссылаться на индекс ассоциативного массива Почему функция автозаполнения Internet Explorer отключена для всех html-форм на моем веб-сайте? Невозможно повторно назначить автоматически-глобальную переменную _POST Как несериализировать PHP Serialized array / variable / class и возвращать подходящий объект в C # Проблема с перерывом страницы fpdf

Получить длительность между форматами даты

как получить длительность между start_date и end_date в формате hrs min sec в php?

$start_date=2012-03-23 11:58:14 and $end_date=2012-03-24 11:54:29 

Используйте класс DateTime :

 $start_date = new DateTime('2012-03-23 11:58:14'); $end_date = new DateTime('2012-03-24 11:54:29'); $dd = date_diff($end_date, $start_date); 

Чтобы получить часы, используйте $dd->h , minutes – $dd->i , seconds – $dd->s .

 echo "Hours = $dd->h, Minutes = $dd->i, Seconds = $dd->s"; 

я бы

 $start_time = strtotime($start_date); $end_time = strtotime($end_date); $difference = $end_time - $start_time; echo date('H:i:s', $difference); 

РЕДАКТИРОВАТЬ

Я допустил ошибку в предположении, что разница во времени будет меньше, чем в день, поэтому, если разница во времени больше, чем в день, вы увидите только часы: минутусы: секунды, что, вероятно, не то, что вы хотите (если это игнорировать это)

Так что я бы сейчас

 $seconds = $difference % 60; //seconds $difference = floor($difference / 60); $min = $difference % 60; // min $difference = floor($difference / 60); $hours = $difference; //hours echo "$hours : $min : $seconds"; 

Извините за исправление

Эта функция поможет вам

 function datediff($interval, $datefrom, $dateto, $using_timestamps = false) { /* $interval can be: yyyy - Number of full years q - Number of full quarters m - Number of full months y - Difference between day numbers (eg 1st Jan 2004 is "1", the first day. 2nd Feb 2003 is "33". The datediff is "-32".) d - Number of full days w - Number of full weekdays ww - Number of full weeks h - Number of full hours n - Number of full minutes s - Number of full seconds (default) */ 

http://php.net/manual/en/function.date-diff.php

  1. отформатировать эти строки на сегодняшний день
  2. преобразовать эти даты в миллисекунды
  3. делать в конце концов
  4. из результата вычислить h: mm: ss

См. Здесь: http://codepad.viper-7.com/FPuOks

 $start_date="2012-03-22 11:58:14"; $end_date="2012-03-24 11:54:29"; $start_time = strtotime($start_date); $end_time = strtotime($end_date); $difference = $end_time - $start_time; echo sprintf("%02d%s%02d%s%02d", floor($difference/3600), ':', ($difference/60)%60, ':', $difference%60); // outputs 47:56:15