Разница времени в php

Рейтинг: 0Ответов: 3Опубликовано: 16.05.2011

Привет!

У меня есть две даты в формате timestamp. Как мне вычислить разницу между ними и узнать сколько времени прошло?

Ответы

▲ 7
$diff = $timestamp2 - $timestamp1;

$second=$diff-(int)($diff/60)*60; // Разница между (секунды)

$days=($diff-(int)($diff/86400)*86400)/86400; // Разница между (дни)

/ Думаю всё понятно, остальное сам докрутишь /

▲ 7

Начиная с PHP 5.3 можно делать так:

$date1 = new DateTime("now");
$date2 = new DateTime("@1356048000");
$interval = $date2->diff($date1);

echo $interval->format("Дней до конца света: %a\n");
echo $interval->format("Или: %y лет, %m месяцев, %d дней, %h часов, %i минут и %s секунд\n");

В данном случае будут учитываться временные зоны и, соответственно, переходы на летнее время. Кроме того, можно оперировать датами с разными временными зонами.

▲ 2
<?
$diff = strtotime($timestamp2) - strtotime($timestamp1);
$days = floor($diff / 60*60*24);
$hours = floor($diff / 60*60);
// or whatever
?>

http://www.php.net/manual/ru/function.strtotime.php