Справка по отметке времени в статусах Twitter - PullRequest
1 голос
/ 28 сентября 2010

Я пытаюсь отобразить статусы твиттера в своем блоге, однако я не могу получить время, в которое создается каждый статус, для отображения желаемого способа.Вот как это печатается сейчас:

Thu Aug 05 12:36:20 +0000 2010

Однако мне бы хотелось, чтобы оно отображалось так:

54 days ago

Как мне это сделать с помощью PHP preg_replace?

Также в настоящее время я использую Twitter API для получения статусов.Лучше использовать этот метод или RSS-канал?Буду признателен, если кто-нибудь сможет мне помочь.Спасибо

Ответы [ 3 ]

1 голос
/ 28 сентября 2010

Я бы действительно рекомендовал записать это на страницу как "5 августа 2010" (или как бы вы ни хотели, чтобы оно появилось). Таким образом, вам нужно только написать это один раз, а не один раз в день. Но также пишите как метку времени по Гринвичу так, чтобы JS мог его прочитать, но люди, у которых JS выключен, не смогут его увидеть. Затем, после того, как ваша страница отобразит все правильно, используйте JS-скрипт для циклического просмотра тегов и замените даты на нужный текст. Пример:

<span class="dateToBeReplaced" title="Thu Aug 05 2010 12:36:20 GMT+0000">Aug 05 2010</span>

JS будет выглядеть примерно так (использует jQuery): http://jsfiddle.net/JxTLt/4/

JS немного более требователен к форматам дат, чем PHP, поэтому вам следует придерживаться приведенного выше формата. Используйте strtotime() для обработки форматирования и преобразования часового пояса.

0 голосов
/ 28 сентября 2010

Вы не сможете сделать это только с preg_replace().Вам нужно сделать несколько временных сравнений, чтобы создать удобочитаемую временную метку.Проверьте этот пост .Также имейте в виду, что ответы Twitter будут GMT.

Что касается API против RSS, то это действительно ваше дело.Оба ответа должны быть проанализированы.Возможно, теперь API-интерфейс требует больше накладных расходов, поскольку Twitter поддерживает только OAuth.Хотя есть несколько доступных библиотек PHP.Если вы хотите отображать только статусы, я бы пошел с RSS.

0 голосов
/ 28 сентября 2010

Вам не нужно разбирать дату вручную, она уже в понятном формате.Если вы выполните его через strtotime , он вернет отметку времени, с которой вы можете работать.

Концепция отображения времени по вашему желанию называется «нечеткое время», и вы можете найти действительнокод поста на нем здесь .

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