一个简单实用的wordpress相对时间(日期)插件

许三品 © 2009年3月28日 Filed under: 网络日志

一直想给娱乐视界的发布时间整为“发表于XX秒之前”的格式,那样感觉更拉风一点,呵呵!但无奈自己完全是个代码盲,要自己实现那是天方夜谈,所以就开始踏上到处求人(12)之路,论坛上其实很快就有人回复了,但结果却不太如意,但还是要感谢那些给予回复的大侠们,比如slenecrazyloong

正是因为crazyloong的介绍WP-RelativeDate可以实现相对时间功能,但经过试有,效果并不理想,因为它会在显示相对时间的同时也会显示正常时间,这让我感觉到他很多余,而且通过帕兰映像介绍的方法也无法独立显示相应时间(日期),所以决定弃用它!

经过不断的放狗搜索,终于让我发现了冰古大侠的玩wordpress上有个你问我答的栏目是这样介绍的:

你是否有关于WordPress方面的问题呢?尽管在这里提出,我将尽我所能帮你解决。

是的,完全免费。

于是抱着试试看的心理进行留言咨询,没想到很快就得到冰古的回复,于是在接下来的几天里,通过这种你问我答的方式,冰古用他过硬的技术和热心的态度终于帮我实现了这个相对时间的效果,在此万分感谢这位大侠。下面我就分享一下这个插件的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
function past_date($prefix='发表于', $suffix='之前', $week='周', $day='天', $hour='小时', $minute='分钟', $second='秒'){
date_default_timezone_set('Etc/GMT-8');   // 修正时间戳时差。
    // 自 PHP 5.1 起在 $_SERVER['REQUEST_TIME'] 中保存了发起该请求时刻的时间戳。
    if ($_SERVER['REQUEST_TIME'])       
        $now_time = $_SERVER['REQUEST_TIME'];
    else
        $now_time = time();
 
    $m = 60;  // 一分钟
    $h = 3600;  //一小时有3600秒
    $d = 86400;  // 一天有86400秒
    $w = 604800;  // 一周
    $dw = 1209600;  // 两周
 
    $post_time = get_post_time('U');
    $past_time = $now_time - $post_time;  // 文章发表至今经过多少秒
 
    if ($past_time <= 0){
        $past_date = 'Just now';
    }else if($past_time < $m){
        $past_date = $past_time . $second;
     }else if ($past_time == $m){
	 $past_date = '1' . $minute;
     }else if (($past_time > $m) && ($past_time < $h)){
	 $past_date = $past_time / $m;
	 $past_date = floor($past_date);
	 $past_date .= $minute;
    }else if ($past_time == $h){
        $past_date = '1' . $hour;
    }else if (($past_time > $h) && ($past_time < $d)){
        $past_date = $past_time / $h;
        $past_date = floor($past_date);
        $past_date .= $hour;
    }else if ($past_time == $d){
        $past_date = '1' . $day;
    }else if (($past_time > $d) && ($past_time < $w)){
        $past_date = $past_time / $d;
        $past_date = floor($past_date);
        $past_date .= $day;
    }else if($past_time == $w){
        $past_date = '1' . $week;
    }else if (($past_time > $w) && ($past_time <= $dw)){
        $past_date = $past_time / $w;
        $past_date = floor($past_date);
        $past_date .= $week;
    }else{
        echo $prefix . get_post_time('Y年n月j日G:i');
        return;
    }
 
    $past_date = $prefix . $past_date . $suffix;
    echo $past_date;  // 打印文章发表至今经过多少时间
}

这个代码可以实现“多少秒、多少分钟、多少小时、多少天、多少周”,当时间差超过两周以上刚会显示正常的时间格式,非常简单实用,你喜欢吗?反正我喜欢,呵呵!

嗯,要是你也喜欢,你可以直接将上面的代码粘贴到你的主题functions.php文件内或者下载这个插件上传激活,然后在要显示相应时间(日期)处调用<?php past_date(); ?>即可!效果演示


欢迎订阅: Google Reader | 鲜果 | 抓虾 | 九点 | QQ邮箱 | 有道 | 更多...

更多相关文章...

上周前六:
  • 吴侃 (2)
  • aisinvon (2)
  • peter程 (2)
  • 妖娆盛唐 (2)
  • 无言的山丘 (1)
  • 赵宏 (1)
  • 我要上榜

    23 Comments

    1. 石油杂志 说:

      呵呵,先占了沙发在发言
      费了好大劲,不过貌似这个功能也没多大用处啊
      仅仅是为了看上去很酷吗

    2. 许三品 说:

      @石油杂志:呵呵,作用嘛,就是自己喜欢这样啦!

    3. 老时 说:

      欢迎你回来!的评论插件共享下不

    4. 许三品 说:

      @老时:这个不是插件实现的~请看http://www.neoease.com/wordpress-guest-post/和http://ishawn.net/my-blog-related/wordpress-visitor-title-enhancing-visitor-experience.html

    5. 小O 说:

      刚发现这个变化!还真是拉风啊!

    6. Amz 说:

      还是绝对的好……看着明了

    7. L.H.Y 说:

      通过你的alicall注册了一个帐号,我来给你发展下线了!!

    8. 这是个很有趣的功能!

    9. shamas 说:

      这个东西不错啊

    10. 中宏保险 说:

      这个东西不错,非常喜欢,谢谢分享

    11. 长河 说:

      我只能通过tor代理访问花果山寨,为什么???

    12. 大帝007 说:

      wordpress就是牛叉啊!

    13. 石油杂志 说:

      我对你现在网站下面出来的条状物品很感兴趣,那是什么啊

    14. 石油杂志 说:

      我注意到显示的链接没有啦
      难道是我回复的少
      不可能啊

    15. I5UP 说:

      我发现你的谷歌广告很曰啊。会跟着屏幕滚动- -讨厌。我多点几次就好了。你想要人家就给你嘛。你不说我怎么知道你想要呢。

    16. 许三品 说:

      @石油杂志:很明显,那是google friend connect呀!就像放在侧边栏一样的有代码的!至于你说的链接显示问题,我查看了一下,那是因为你评论的时候还是使用旧的域名,跟链接里的域名不一样,所以不会计算的!呵呵
      @I5UP:谷歌广告?那个地方的?我的谷歌广告全个页面只有三个!而且都是固定的!

    17. J.wei 说:

      这个插件好

    18. 相比这个插件,还是底下的google条更有意思,哈哈

    19. 石油杂志 说:

      崩溃啊,原来是这样
      浏览器默认就是原来的域名
      乖乖,晕死

    20. 石油杂志 说:

      猴哥,预测下pr更新时间吧,等的好辛苦啊

    21. marslau 说:

      恭喜你折腾出来了

    22. 妖娆盛唐 说:

      三品开始走技术路线了,呵呵

    Post a Comment