关于php:如何创建友好的日期格式

How to create a friendly date format (for example “submitted 2 days ago”)

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I calculate relative time?

我想在我的社交网站上设置日期格式,就像digg.com和其他网站一样。在那里,你会看到非常友好的约会,例如:

  • 刚才
  • 3分钟前
  • 一小时前
  • 2周前
  • 6个月前

在我全神贯注地创建这样一个东西之前,有没有人知道有什么现成的脚本,我只需插入一个日期戳,并根据它与当前时间的关系给出一个友好的日期文本?

PS:我需要在PHP中使用这个,但伪代码或其他语言也可以。


这是这个问题的副本。除了这个站点使用的代码之外,它还有许多关于如何完成这一点的代码示例。我看了一眼,似乎也有一个PHP实现发布在那里。

除此之外,如果您正在使用jquery,那么您可以使用类似于timeago插件的东西来进行客户端操作。它的优点是随着时间的推移更新文本,因此,如果您加载一个页面,它说"5分钟前发布",5分钟后再查看,它说"10分钟前发布"


感谢所有人的回答,并为重复的问题道歉。我在查找副本时没有找到它,因为我不知道要使用什么搜索词。

无论如何,由于stackoverflow使用的代码的php翻译,我的问题得到了解决。我在计算delta时做了一个微小的改变:

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

由于我将日期存储在MySQL中,作为GMT格式的时间戳,所以我必须使用相同的时间来计算当前时间。这使得时区成为中性比较,这正是我需要的。


您也可以在SQL中执行此操作:

在SQL中将日期时间转换为"n小时前"的最佳方法