PHP: арифметика даты и времени - PullRequest
3 голосов
/ 20 июня 2010

Я немного застрял с классом PHP DateInterval. Что я действительно хочу, так это количество секунд, прошедших между двумя DateTime отметками.

$t1 = new DateTime( "20100101T1200" );
$t2 = new DateTime( "20100101T1201" );
// number of seconds between t1 and t2 should be 60

echo "difference in seconds: ".$t1->diff($t2)->format("%s");

Все, что я получаю, это ноль. Класс DateInterval не подходит для арифметики? Как может получить «точное» количество секунд (или часов, или чего-то еще) между двумя отметками времени?

1 Ответ

9 голосов
/ 20 июня 2010

Если вы просто хотите быстро получить секунды, вы можете использовать

$diff = abs($t1->getTimestamp() - $t2->getTimestamp());

Ваш код возвращает 0, поскольку фактическая разница секунд равна 0, разница в вашем примере составляет 1 минута (1 минута, 0 секунд). Если вы напечатаете формат % i , вы получите 1, что является правильным различием $t1 и $t2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...