Возможный дубликат:
Как рассчитать относительное время?
Я хочу форматировать даты в своем социальном веб-приложении, как это делают Digg.com и другие сайты. Там вы видите очень дружеские даты, такие как:
Прежде чем я обмотаю голову, создавая такую вещь, кто-нибудь знает какой-нибудь готовый сценарий для этого, где я просто вставляю 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