дата начала 1321023600
дата конца 1321151993
Задача, получить интервал
1. в секундах всего
2. виде: часы - минуты - секунды
$start = '1321023600';
$finish = '1321151993';
$long = $finish - $start;
echo "Прошло секунд: ".$long;
echo "Всего прошло: ".date('H час : i мин : s сек', $long);
Вопрос в том, что в секундах получается правильное значение, а в формате: часы-минуты-секунды, значение некорректное. Что я делаю не так? :rolleyes:
Спустя 10 часов, 48 минут, 24 секунды (13.11.2011 - 15:35) dadli написал(а):
Цитата |
date ( string format [, int timestamp] ) |
дело втом что ви написали: получит время в формате H:i:s, а втарои аргумент для функции date задали число 128393
а функця дате возврашает времю из начали епох UNIX, тоест вам функця возврашала время в формате H:i:s котории прошла от 1970-01-01 00:00:00 через 128393 секунди, вот так напишите и видите более наглядна:
echo date("Y-m-d H:i:s",$long);
в итоге ви хотели получить сколко время прошло от $start до $finish, примерно вот так можно ето:
получаем ден, час, минут и секунд
$start = '1321023600';
$finish = '1321151993';
$long = $finish - $start;
$den = $long / (3600 * 24);
if (substr_count($den,".") > 0) {
$den = strstr($den,".",true);
}
//
$chas = $long - $den * (3600 * 24);
$chas = $chas / 3600;
if (substr_count($chas,".") > 0) {
$chas = strstr($chas,".",true);
}
//
$minut = $long - $den * (3600 * 24) - $chas * (3600);
$minut = $minut / 60;
if (substr_count($minut,".") > 0) {
$minut = strstr($minut,".",true);
}
//
$second = $long - $den * (3600 * 24) - $chas * 3600 - $minut * 60;
echo "разница из етих временни есть: <br>";
echo $den." ден<br>";
echo $chas." час<br>";
echo $minut." минут<br>";
echo $second." секунд<br>";
Спустя 5 месяцев, 1 день, 19 часов, 10 минут, 7 секунд (15.04.2012 - 10:45) Nikitian написал(а):
Для php5.3+ DateTime::diff()
_____________
Live in new format =)