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


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

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

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

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

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

Author: Community, 2009-03-22

3 answers

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

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

 10
Author: Paolo Bergantino, 2017-05-23 11:46:16

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

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

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

Поскольку я сохраняю свои даты в MySQL в виде метки времени в формате GMT, я должен использовать то же самое для расчета ТЕКУЩЕГО времени. Этот делает сравнение с нейтральным часовым поясом, что именно то, что нужно в моем случае.

 2
Author: Ferdy, 2014-09-05 13:53:38
 0
Author: Espo, 2017-05-23 12:32:02