如何创建友好的日期格式(例如“提交2天前”)

时间:2009-03-21 22:55:22

标签: php date formatting

  

可能重复:
  How do I calculate relative time?

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

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

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

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

3 个答案:

答案 0 :(得分:11)

这是此question的副本。除了本网站使用的代码之外,它还有一些关于如何实现此目的的代码示例。我瞥了一眼,似乎也有一个PHP实现。

除了这一切之外,如果你使用的是jQuery,你可以使用timeago插件之类的东西来做客户端。它具有随着时间的推移更新文本的优势,所以如果你加载一个页面,它说“5分钟前发布”,并在5分钟后再看,它说“10分钟前发布”

答案 1 :(得分:2)

感谢大家的回答,对不起重复的问题。我在寻找它时没有找到副本,因为我真的不知道要使用哪些搜索词。

无论如何,由于stackoverflow使用的代码的PHP转换,我解决了我的问题。我在计算delta时做了一点微小的改动:

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

由于我将MySQL中的日期存储为GMT格式的时间戳,因此我必须使用相同的方法来计算CURRENT时间。这使得时区中立比较,这正是我的情况所需要的。

答案 2 :(得分:0)

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

Best way to convert DateTime to "n Hours Ago" in SQL