wordpress函数human_time_diff时间显示为“XX分钟前”

2013.09.10 分享 21410 人浏览 6 条留言

今天在修改模板的时候,想用上“XX分钟前”这种时间显示效果,百度了下,找到 了wordpress自带的函数,比起网上别人分享的方法简单方便多了,果断拿来使用

使用方法:<?php human_time_diff( $from, $to ); ?>

例子:(来源于:human time diff

To print an entry's time ("2 days ago"):  <?php echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' ago'; ?>

For comments:  <?php echo human_time_diff( get_comment_time('U'), current_time('timestamp') ) . ' ago'; ?>

但是在我的博客上显示的居然是中英文混用的...,不知道是不是我的版本问题还是什么情况,我现在版本是3.6 最新版。

貌似这次wordpress更新 下面的翻译问题已经不出现了,真好,可以直接用这个函数了,下面的内容大家就无视吧。


 

在我的博客上显示效果如下

2 天 ago

2 weeks ago

这个ago可以自定义,但是那个”天“和”weeks“看的真心蛋疼,这个days倒是翻译成中文了,后面的weeks就是英文的,要嘛全中文,要嘛全英文嘛

临时解决方法:

打开wp-includes/formatting.php 分别找到

$since = sprintf( _n( '%s week', '%s weeks', $weeks ), $weeks );

$since = sprintf( _n( '%s month', '%s months', $months ), $months );

$since = sprintf( _n( '%s year', '%s years', $years ), $years );

修改为

$since = sprintf( _n( '%s 周', '%s 周', $weeks ), $weeks );

$since = sprintf( _n( '%s 月', '%s 月', $months ), $months );

$since = sprintf( _n( '%s 年', '%s 年', $years ), $years );

所谓临时方案,也就是在下次更新wordpress版本的时候得再次修改这个文件,除非官方修复了这个bug

修改后效果见I SAY

xx分钟前

PS:对于英文的wordpress,提交这个BUG我暂无能为力...哪位大神测试下是不是也有这个情况去提交个BUG呗...

文章地址:https://huilang.me/wordpress-human_time_diff/

“wordpress函数human_time_diff时间显示为“XX分钟前”” 有 6 条评论

  1. 灵尘子说道:

    要修改内核,懒得折腾啊。

  2. haitao说道:

    哎呀,高人,厉害啊,我在用你的土鳖网主题,做网站,做得不错哦。。。

回复本文

您的电子邮箱地址不会被公开。 必填项已用 * 标注

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif