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


Answers

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

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

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

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

Question

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

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

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

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

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