Прошлая текстовая дата в днях (с) PHP - PullRequest
0 голосов
/ 30 мая 2011

Эй, ребята, как рассчитать дни, прошедшие с даты, подобной той, которую выводит Твиттер в своем API например:

Пн. 12 июля 00:27:26 +0000 2010

до XXX

Можем ли мы сделать это с strtotime

Спасибо, ребята, Dex

Ответы [ 3 ]

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

Примечание о совместимости: работает только для PHP> = 5.3.0

При условии, что формат даты не изменяется, вы можете отменить процесс (т. Е. Отменить метку времени -> строка (вкл.)Twitters серверов), чтобы метки времени), используя точный формат даты.Используя таблицу на странице руководства DateTime :: createFromFormat :

<?php
$str = 'Mon Jul 12 00:27:26 +0000 2010';
$oDateTime = DateTime::createFromFormat('D M d H:i:s T Y', $str);
$unix_timestamp = $oDateTime->getTimestamp();
echo $unix_timestamp;
?>

Осторожно: на моей машине date('d-m-Y H:i:s', $unix_timestamp) отличается на два часа, часовой пояс машины GMT + 2.

Чтобы рассчитать разницу в днях между двумя временными метками Unix, используйте математические вычисления (день имеет 86400 секунд):

echo ($unix_timestamp1 - $unix_timestamp2) / 86400;

Если у вас есть две такие даты, вы можете использовать DateTime::diffкак предложено в комментариях Zerocrates.Вы создали два экземпляра DateTime, используя DateTime::createFromFormat, и вызвали DateTime::diff с двумя переданными аргументами, ранее созданными экземплярами DateTime.Возвращенный экземпляр DateInterval имеет свойство d, которое содержит разницу в днях.
Другой способ - использовать метод getTimestamp, выполняя вычисления из предыдущего примера.

Ссылки:

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

Вы можете сделать это так (где $your_date - указанная вами строка):

$diff = (time() - strtotime($your_date)) / (24*60*60);

В вашем случае, когда я сделал echo $diff; вывод был (в то время, когда я отправил ответ):

321.85475694444

Подробнее см. Для strtotime(), time() и date().

Надеюсь, это вам помогло.

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

Здесь вы можете найти sth:

выполнение операций, связанных с датой и временем, в PHP

или в руководстве по php есть много всего.1009 *http://php.net/manual/en/function.date.php

...