Как создать дружественный формат даты (например, «отправлено 2 дня назад»)

Возможный дубликат:
Как рассчитать относительное время?

Я хочу форматировать даты в своем социальном веб-приложении, как это делают Digg.com и другие сайты. Там вы видите очень дружеские даты, такие как:

  • прямо сейчас
  • 3 минуты назад
  • один час назад
  • 2 недели назад
  • 6 месяцев назад
  • и т.д

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

PS: Мне нужно это в PHP, но псевдокод или любой другой язык тоже хорош.

Это дубликат этого вопроса . Он имеет шквал образцов кода о том, как это сделать, в дополнение к коду, который использует этот сайт. Я взглянул на него, и там, похоже, есть PHP-версия, размещенная там тоже.

В дополнение ко всему этому, если вы используете jQuery, вы можете сделать это на стороне клиента с чем-то вроде плагина timeago . У него есть преимущество в обновлении текста с течением времени, поэтому, если вы загружаете страницу, и она говорит «отправлено 5 минут назад» и снова смотрит 5 минут спустя, она говорит, что «опубликовано 10 минут назад»,

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

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

$delta = strtotime(gmdate("Ymd H:i:s", time())) - $time; 

Поскольку я храню свои даты в MySQL как временную метку в формате GMT, я должен использовать то же самое для вычисления времени CURRENT. Это приводит к нейтральному сравнению с часовым поясом, что и есть то, что необходимо в моем случае.

Вы также можете сделать это в SQL:

Лучший способ конвертировать DateTime в «n Hours Ago» в SQL