我有一个博客。我经常发布一些有趣的东西。我维护响应时间的时间戳。如何显示以下时间?
2010-02-09 1小时前,如果答复只有1小时
2010-02-09 20小时前,如果回复只有20个小时
昨天2010-02-08,如果回复只有1天
2010-02-04 17:20,如果回复是前几天
我将数据库中的时间戳维护为Unix time。例如,我的时间戳是1265709142。
如何用PHP实现?
答案 0 :(得分:3)
$d = time() - $timestamp;
if ($d < 60)
return $d." second".(($d==1)?'':'s')." ago";
else
{
$d = floor($d / 60);
if($d < 60)
return $d." minute".(($d==1)?'':'s')." ago";
else
{
$d = floor($d / 60);
if($d < 24)
return $d." hour".(($d==1)?'':'s')." ago";
else
{
$d = floor($d / 24);
if($d < 7)
return $d." day".(($d==1)?'':'s')." ago";
else
{
$d = floor($d / 7);
if($d < 4)
return $d." week".(($d==1)?'':'s')." ago";
}//Week
}//Day
}//Hour
}//Minute
答案 1 :(得分:2)
我确信有基于PHP的方法,我很想看到一些,但也有一个名为Pretty Date的基于jQuery的插件。我认为Stack Overflow使用它。
当然,这取决于在用户浏览器中激活的JavaScript,但在JavaScript关闭时会优雅地降级。此外,在搜索引擎中,真实日期是索引而不是格式化日期 - 一个小但很好的加号。
答案 2 :(得分:1)
有一个JavaScript库:http://tpgblog.com/cutetime/。 只需以特定格式打印日期,然后将JavaScript库添加到您的页面即可。完成。
答案 3 :(得分:1)
最好的方法是根据ISO格式化时间,例如2008-07-17T09:24:17Z
<?php
$DateOfRequest = date("Y-m-dTH:i:s", $timestamp);
?>
然后,使用http://timeago.yarp.com/注入格式字符串,例如“2小时前”左右。