PHP Сравнение временных меток - PullRequest
1 голос
/ 16 мая 2011

При попытке сравнить с временными метками php я получаю отключенное значение.Не уверен, что мне не хватает.

Я бы хотел, чтобы мой результат получился примерно таким:

3 дня 5 часов 10 минут, так как x

Я пробую это с чем-то, что должноразница будет только в минутах, но в итоге вы получите очень неподходящие числа (31 день 19 часов 11 минут)

$timesince = time() - $firstdate;
$dsince = date("d",$timesince);
$hsince = date("G",$timesince);
$msince = date("i",$timesince);

Я полагаю, мне нужен другой способ?

Ответы [ 3 ]

4 голосов
/ 16 мая 2011

date () принимает абсолютное значение метки времени, а не разницу между двумя значениями. Вам необходимо проанализировать разницу вручную (разделить на 3600, затем на 60 и т. Д.). В комментариях есть несколько примеров http://php.net/manual/en/function.time.php

1 голос
/ 16 мая 2011

time() возвращает текущее время в формате метки времени Unix, как вы, вероятно, уже знаете.$firstdate также должен быть в этом формате, или он должен быть преобразован с использованием strtotime() функции PHP.

Решение, которое вы используете, неверно - это не будет работать для более длинных различий и т. Д. Вы должны сделать некоторыедополнительные вычисления, преобразовывающие разницу в секундах в разницу, информирующую о днях, часах и минутах.

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

Образец и правильное решение вы можете найти в PHP-игре Kohana 3span() метод) здесь: http://kohanaframework.org/3.1/guide/api/Kohana_Date#span

0 голосов
/ 16 мая 2011

Вы можете попробовать найденную функцию здесь на php.net .

...