如何让时间显示为“xx分钟以前”

石头 发布于2010-6-7 13:15:24 分类: 小技巧 已浏览loading 网友评论36条 我要评论

    我想各位经常上微博客或者各类视频站的朋友们都会留意到一个细节,在它们的评论列表中的发布时间中一般都是显示的“37分钟以前”“3天以前”而不是死板的发布时间,我觉得这种效果非常的友好,非常适合网友或博主查看和Follow。

    最近我也对其简单的研究了一下,发现其实要实现这种效果并不是什么难事,只需要简单的改动几个地方,整个站的时间都可以显示为“xx分钟以前”“xx天以前”,到底该怎么实现呢?首先我要介绍一下一款jQuery插件:timeago。timeago是一款在jQuery基础上开发的相当优秀且体积精小的插件,利用它可以帮助你把网页中的任意时间转换为多久以前并自带自动刷新功能,看图:

如何让时间显示为xx分钟以前配图

    从上图可以看到各位网友给石头的评论都很自然的显示为了多久以前,非常酷吧!该怎么实现呢?

    首先你需要在你的网页中加载jQuery Timeago插件,在任意可以加载JS的插入以下代码即可在页面中挂载上这个插件:

eval(function(p,a,c,k,e,r){e=function(c){return(c<62?'':e(parseInt(c/62)))+((c=c%62)>35?String.fromCharCode(c+29):c.toString(36))};if('0'.replace(0,e)==0){while(c--)r[e(c)]=k[c];k=[function(e){return r[e]||e}];e=function(){return'([3-9a-ce-hjkm-ru-zA-SU-Y]|1\\w)'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(4($){$.7=4(j){a(j instanceof z)5 b(j);M a(typeof j=="A")5 b($.7.B(j));M 5 b($.7.c(j))};3 $t=$.7;$.extend($.7,{q:{C:60000,N:true,O:{P:r,Q:r,R:"前",S:"距离现在",U:r,V:r,e:"小于1分钟",W:"大约1分钟",f:"%d分钟",X:"大约1小时",g:"大约%d小时",Y:"1天",8:"%d天",10:"大约1个月",11:"%d月",12:"大约1年",o:"%d年"}},b:4(p){3 $l=k.q.O;3 D=$l.P;3 E=$l.R||$l.U;a(k.q.N){a(p<0){D=$l.Q;E=$l.S||$l.V}p=h.abs(p)}3 e=p/1000;3 f=e/F;3 g=f/F;3 8=g/24;3 o=8/14;3 15=e<45&&6($l.e,h.G(e))||e<90&&6($l.W,1)||f<45&&6($l.f,h.G(f))||f<90&&6($l.X,1)||g<24&&6($l.g,h.G(g))||g<48&&6($l.Y,1)||8<30&&6($l.8,h.H(8))||8<F&&6($l.10,1)||8<14&&6($l.11,h.H(8/30))||o<2&&6($l.12,1)||6($l.o,h.H(o));5 $.I([D,15,E].join(""))},B:4(u){3 s=$.I(u);s=s.m(/-/,"/").m(/-/,"/");s=s.m(/T/," ").m(/Z/," UTC");s=s.m(/([\\+-]\\d\\d)\\:?(\\d\\d)/," $1$2");5 19 z(s)},c:4(v){3 1a=$(v).get(0).tagName.toLowerCase()=="1b";3 u=1a?$(v).attr("c"):$(v).html();5 $t.B(u)}});$.fn.7=4(){3 w=k;w.1c(J);3 $s=$t.q;a($s.C>0){setInterval(4(){w.1c(J)},$s.C)}5 w};4 J(){3 n=1d(k);a(!isNaN(n.c)){$(k).K(b(n.c))}5 k}4 1d(9){9=$(9);a(!9.n("7")){9.n("7",{c:$t.c(9)});3 K=$.I(9.K())}5 9.n("7")}4 b(x){5 $t.b(1e(x))}4 1e(x){5(19 z().1f()-x.1f())}4 6(y,L){3 A=$.isFunction(y)?y(L):y;5 A.m(/%d/i,L)}1g.1h("abbr");1g.1h("1b")})(jQuery);',[],80,'|||var|function|return|substitute|timeago|days|element|if|inWords|datetime||seconds|minutes|hours|Math||timestamp|this||replace|data|years|distanceMillis|settings|null|||iso8601|elem|self|date|stringOrFunction|Date|string|parse|refreshMillis|prefix|suffix|60|round|floor|trim|refresh|text|value|else|allowFuture|strings|prefixAgo|prefixFromNow|suffixAgo|suffixFromNow||ago|fromNow|minute|hour|day||month|months|year||365|words||||new|isTime|time|each|prepareData|distance|getTime|document|createElement'.split('|'),0,{}))
$(document).ready(function() {
    $(".thisTime").timeago();
});

    当然,这个JS是经过石头改为更加符合博客习惯并压缩加密了的(你也可以点此下载它的原版),非常的小巧吧!但注意:插入这个代码以前请确保你的网页中也已经插入了jQuery!ZBLOG是默认已经加载了jQuery,所以并不需要你再加入jQuery。

    接下来就是最重要的一步了:请在显示时间的地方给时间标签外加上“<span class=thisTime></span>”,因为插件是根据class=thisTime来替换时间的。比如评论列表中,可以把b_article_comment.html中的<#article/comment/posttime#>替换为<span class=thisTime><#article/comment/posttime#></span>再保存,后台重建一下,就可以实现啦。

提示:可能在最后大家依然无法看到想象中的效果,那是因为Zblog官方默认加载的jQuery好像有点问题,解决办法可以把根目录中的/SCRIPT/common.js中嵌入jQuery的部分替换为最新的jQuery代码即可解决。点此下载最新版的jQuery

已经有(36)位网友发表了评论,你也评一评吧!

原创文章转载请注明引自石头博客 http://www.stou.info/ 欢迎订阅石头博客

关于 jQuery  技巧  的相关文章

  1. 发表于2010-6-20 10:44:53

    细节帝啊。。膜拜。。我都没注意的。。

  2. 发表于2010-6-11 14:01:04


    您的博客真漂亮,网站真的不错,来踩了,感谢分享!
    返利网_淘宝返利_购物返利最高的网站★50%的现金返利http://www.yunhefanli.com 我们只做让您最满意最放心的淘宝购物返利网站.

  3. 发表于2010-6-10 20:03:54

    这个真的不错。不过不怎么想折腾了

  4. 发表于2010-6-10 19:21:53

    那图的箭头怎么搞的?

    stone 于 2010-6-11 12:50:18 回复说
    一张图片呗,嘿嘿

  5. 发表于2010-6-10 12:06:46

    我也是这种想法 想折腾 又怕麻烦 还是再等等吧

  6. 发表于2010-6-10 7:13:17

    干嘛还用加密的?过分!

    stone 于 2010-6-10 8:47:20 回复说
    这只是一种比较常规的压缩方法,能够节约版面。你也可以到http://timeago.yarp.com/下载它的原版。

  7. 发表于2010-6-9 20:29:08

    收藏,改东西的时候顺便用上去。哈。

  8. 发表于2010-6-9 10:10:58

    不错哦````````

  9. 发表于2010-6-8 17:15:42

    支持你。
    不过不想再折腾了。

  10. 发表于2010-6-8 11:21:06

    有点想折腾下,又觉得麻烦。。。

  11. 发表于2010-6-8 9:47:26

    这个功能不错,国外很多科技博客也都用

    找个时间我也去加下,不过站上不用JQ,只能自己写了

    stone 于 2010-6-9 8:41:01 回复说
    你可以引用Google提供的高速的jQ,地址为http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js

  12. 发表于2010-6-8 8:48:09

    哈哈,好东东。下次换板子的时候用上,最近就不折腾了。

  13. 发表于2010-6-8 4:46:45

    博主这个东东一来,不少人又要折腾开了。

    stone 于 2010-6-8 8:43:54 回复说
    已经看到几位朋友的博客上都已经加上了这个功能了哈,非常高兴呢。

  14. 发表于2010-6-8 0:54:32

    自从上次整上那个广告(后面让你帮着看的那个)之后,就一直对JQ有阴影了。Adore

    stone 于 2010-6-8 8:54:42 回复说
    换上了Google的JQ后还有阴影啊?
    猴子 于 2010-6-8 15:22:14 回复说
    呃。。我还没换。
    stone 于 2010-6-9 8:36:52 回复说
    换了吧,赶快抛弃这个阴影。

  15. 发表于2010-6-8 0:06:14

    呵呵,我的把时间精确到秒了。

    stone 于 2010-6-8 8:56:30 回复说
    是改的这个JS吗?我在你的留言本里发现并没有启用这个功能啊?如果你改好了,能分享给我一下吗?

  16. 发表于2010-6-7 23:34:25

    呵呵,有意思,有了这个东东就可以知道留言的具体时间了

  17. 发表于2010-6-7 22:15:48

    我的也是用这样的~没用插件哦~

    stone 于 2010-6-8 8:57:44 回复说
    哈哈,你也用上腾讯微博的主题了?有意思,呵呵。

  18. 发表于2010-6-7 22:08:37

    貌似回复的时间不能改变。

    stone 于 2010-6-8 8:52:04 回复说
    恩,这个还得研究下,不过思路也就是把程序中回复的模板中的时间外加上这个标签就OK啦

  19. 发表于2010-6-7 21:51:09

    不错,回去试试

  20. 发表于2010-6-7 21:12:51

    我说时间好像变了撒。。哈哈~

    stone 于 2010-6-8 8:49:42 回复说
    现在才发现。。。

  21. 发表于2010-6-7 17:58:02

    修改起来,太麻烦了点。

    stone 于 2010-6-8 8:49:23 回复说
    不麻烦啦,页面中引入这个插件,再给时间外加个<span class=thisTime></span>标签就OK啦

  22. 发表于2010-6-7 16:47:14

    奇怪两个博客都没成功。

    stone 于 2010-6-7 17:51:15 回复说
    如果一切都是按文中的步骤做的,没成功多半是因为采用了ZB官方的jQ,换成最新版的jQ可以解决这个问题。
    oogps 于 2010-6-7 19:05:32 回复说
    我换了新的啊。。

  23. 发表于2010-6-7 16:14:23

    我用了没成功。。。哎。。

  24. 发表于2010-6-7 15:46:31

    我也去折腾看看

  25. 发表于2010-6-7 15:44:31

    非常强,拿去用用看。

  26. 发表于2010-6-7 14:14:23

    直接拿去用用,有问题再来请教石头!

    stone 于 2010-6-8 8:46:52 回复说
    搞好了没?笨小孩和GPS都已经搞好啦

  27. 发表于2010-6-7 14:07:29

    是哦,0了

    stone 于 2010-6-8 8:46:19 回复说
    淡定淡定。。。

  28. 发表于2010-6-7 14:02:48

    石头。 你PR真的不回来了。。

    stone 于 2010-6-8 8:46:07 回复说
    猴子说的,淡定淡定。

  29. 发表于2010-6-7 13:55:48

    嘻嘻,马上去蹂躏博客一番

  30. 发表于2010-6-7 13:55:02

    jquery 真强大,谢谢了。

  31. 发表于2010-6-7 13:53:22

    这样显示感觉挺好的
    不错,支持一下

  32. 发表于2010-6-7 13:51:00

    支持石兄对技术坚持,连这么一个小细节都注意,赞一个!

    stone 于 2010-6-8 8:45:36 回复说
    呵呵,平时空了爱乱弄弄。

  33. 发表于2010-6-7 13:50:29

    呵呵,你用了这个插件没,我留言试试看。

    stone 于 2010-6-7 17:51:28 回复说
    我用了的哈

  34. 发表于2010-6-7 13:50:16

    学习了!@!!
    试试看!

  35. 发表于2010-6-7 13:49:45

    谢谢分享,有时间试试

  36. 发表于2010-6-7 13:49:19

    沙发

    千里眼 于 2010-6-7 13:50:44 回复说
    嘿嘿,抢到沙发了
    stone 于 2010-6-7 13:55:44 回复说
    呵呵,你真快!赞!Haha

记住我的信息,下次不用再输入不会设置评论的头像?点这里