Вывод даты и времени как в Twitter или Facebook

Как известно, в Twitter и Facebook даты сообщений проставляются не стандартно, а показывают сколько прошло времени с момента публикации: «30 секунд назад» или «2 часа назад». Сегодня я покажу как это можно реализовать у себя с помощью PHP.

Для пользователей WordPress все совсем просто, вставьте этот код в место вывода даты:

Для других случаев используйте этот код:

Enjoy!

  • art

    если так выводить, то и обновлять значения надо. на js не должно быть сложно

    • Neolot

      Это имеет смысл, если только ваш сайт обновляется с частотой твиттера 🙂 Поищите, подобное решение на js легко найти

      • art

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

  • Это имеет смысл, если только ваш сайт обновляется с частотой твиттера

    А с какой частотой этот код обновляет данные? У меня получилось (что, в общем-то, странно) заюзать Ваш код. Последний твит выводится в «шапке». Так я вижу отправленный 2 часа назад, отправленный только что — не вижу 🙂
    Так с какой-какой частотой?

    • Neolot

      С частотой обновления страницы.

      • В том-то и дело что нет..
        Можно я Вам тут скопирую код, который был в шаблоне и как я его заменила на Ваш? Одной мне не справиться..

        • Neolot

          Попробуйте, но не уверен, что это что-то прояснит, вы не понимаете самого принципа такого подсчета времени. Этот код тупо высчитывает разницу во времени между временем публикации статьи и временем открытия страницы. Как там оно у вас работает с твитами не представляю, но догадываюсь, что вы там что-то перемудрили.

          • Да нет, время-то оно как раз считает, только показывает не самый последний твит.

          • Neolot

            Этот код никак не связан с вашими твитами, поверьте, он просто считает разницу во времени и ничего более.

  • Понимаете, есть два варианта замены: или оно мне выводит последний твит как отправленный 4 десятилетия назад 🙂 или не обновляет данные после перезагрузки страницы.
    Такие дела..

  • Этот код никак не связан с вашими твитами, поверьте, он просто считает разницу во времени и ничего более

    Да, я таки додумалась до этого 🙂 Поняла, что где-то есть указание, с какой частотой менять твиты и Ваш прекрасный код тут ни при чём.
    Спасибо за помощь: теперь минуты, часы и дни нормально отображаются.

  • Отличная вещь! Как раз пригодилась

  • Да, согласен что данный метод эффективен при использовании его вместе с ajax. Иначе смысл что человек провёл на сайте минут 5-10 а даты старые показываются неактуальные. Но для юзабилити полезно.

  • скажите, как настроить показ, ровным счетом как ВКонтакте. там есть характерная особенность, по истечении скажем месяца показываться начинает месяц-число-день-время. а по прошествии года и год будет показан…. как допилить этот скрипт в подобном формате? Спасибо