Посчитать разницу во времени и вывести в нужном формате

gv0zd

Новичок
Приходят у меня две даты в формате
PHP:
"Y-m-d H:i:s
Нужно посчитать разницы между ними и вывести в формате
PHP:
"H:i:s
Вот пример для проверки
PHP:
echo "25-08-2011 17:30:30 = ".strtotime ("25-08-2011 17:30:30")." = ".date ("d-m-Y H:i:s", strtotime ("25-08-2011 17:30:30"))."<br>";
echo "25-08-2011 17:31:17 = ".strtotime ("25-08-2011 17:31:17")." = ".date ("d-m-Y H:i:s", strtotime ("25-08-2011 17:31:17"))."<br>";
echo date ("H:i:s", strtotime ("25-08-2011 17:31:17")-strtotime ("25-08-2011 17:30:30"));
exit;
Вот выдача для проверки
PHP:
25-08-2011 17:30:30 = 1314282630 = 25-08-2011 17:30:30
25-08-2011 17:31:17 = 1314282677 = 25-08-2011 17:31:17
02:00:47

=====
А нужно:
00:00:00
Откуда при разнице между засечкам в 47 секунд, появляются лишние 2 часа?
Вроде и задача тривиальна но что-то долбаюсь об нее..
 

Вурдалак

Продвинутый новичок
Второй аргумент date() принимает unix timestamp со всеми вытекающими, а не относительное время.
 

С.

Продвинутый новичок
PHP:
echo date ("H:i:s", strtotime ("25-08-2011 17:31:17")-strtotime ("25-08-2011 17:30:30"));
Забавно, но такой способ по идее должен работать при разнице не более 24 часов.
 

gv0zd

Новичок
Второй аргумент date() принимает unix timestamp со всеми вытекающими, а не относительное время.
Ок, понял, пробежался по мануалу.
Как я понял, все функции, работающие с датой и временем, принимают unix timestamp.
Во всяком случае все которые я попробовали иного результата не дали.

Выходит нужно самому писать функцию, для подсчета? Или я плохо искал по мануалу?
Заранее спасибо

PHP:
echo date ("H:i:s", strtotime ("25-08-2011 17:31:17")-strtotime ("25-08-2011 17:30:30"));
Забавно, но такой способ по идее должен работать при разнице не более 24 часов.
Большей разницы и не будет
 

Вурдалак

Продвинутый новичок
Что там писать-то?
PHP:
$diff = strtotime ("25-08-2011 17:31:17")-strtotime ("25-08-2011 17:30:30");
echo sprintf('%02d:%02d:%02d', $diff / 3600, ($diff % 3600) / 60, $diff % 60);
 
Сверху