WordPress 时间格式为几分钟之前几小时之前

前端 296
7个月前

我们在很多网站和论坛都会看到此文章或评论发布于几分钟前、几小时前、几天前,这样给人感觉非常好。今天在此就将几种实现方法分享给大家。

将文章发布时间改为这种形式

WordPress 本身调用时间的函数 the_time() 只能直接调用时间,通过他的 filter,我们可以让他显示为比较科学的几天前格式。

当然,具体的时间组成格式可参考下面这篇文章:

将下边的代码丢到 function.php 的最后一个 ?> 前即可。


/**
 */
function Bing_filter_time(){
 global $post ;
 $to = time();
 $from = get_the_time('U') ;
 $diff = (int) abs($to - $from);
 if ($diff <= 3600) {
 $mins = round($diff / 60);
 if ($mins <= 1) {
 $mins = 1;
 }
 $time = sprintf(_n('%s 分钟', '%s 分钟', $mins), $mins) . __( '前' , 'Bing' );
 }
 else if (($diff <= 86400) && ($diff > 3600)) {
 $hours = round($diff / 3600);
 if ($hours <= 1) { $hours = 1; } $time = sprintf(_n('%s 小时', '%s 小时', $hours), $hours) . __( '前' , 'Bing' ); } elseif ($diff >= 86400) {
 $days = round($diff / 86400);
 if ($days <= 1) { $days = 1; $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' ); } elseif( $days > 29){
 $time = get_the_time(get_option('date_format'));
 }
 else{
 $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'Bing' );
 }
 }
 return $time;
}
add_filter('the_time','Bing_filter_time');

将文章和评论发布时间都改为这种形式

方法一

首先,在我们所使用主题的 functions.php 文件最后一个?>前中加入以下代码:改自,文章日期时间显示效果见本站文章页。


/**
 */
function timeago( $ptime ) {
 date_default_timezone_set ('ETC/GMT');
    $ptime = strtotime($ptime);
    $etime = time() - $ptime;
    if($etime < 1) return '刚刚'; $interval = array ( 12 * 30 * 24 * 60 * 60 =>  '年前 ('.date('Y-m-d', $ptime).')',
        30 * 24 * 60 * 60       =>  '个月前 ('.date('m-d', $ptime).')',
        7 * 24 * 60 * 60        =>  '周前 ('.date('m-d', $ptime).')',
        24 * 60 * 60            =>  '天前',
        60 * 60                 =>  '小时前',
        60                      =>  '分钟前',
        1                       =>  '秒前'
    );
    foreach ($interval as $secs => $str) {
        $d = $etime / $secs;
        if ($d >= 1) {
            $r = round($d);
            return $r . $str;
        }
    };
}

然后,在需要显示时间的地方即可。

文章发布时间格式修改使用方法:

把原先显示时间的代码(如:)改为以下代码即可:


<!--?php echo timeago(get_gmt_from_date(get_the_time('Y-m-d G:i:s'))); ?-->

评论发布时间格式修改使用方法:

把原先显示时间的代码(如:)改为以下代码即可:


<!--?php echo timeago(get_gmt_from_date(get_comment_date('Y-m-d G:i:s'))); ?-->
方法二

本方法可以让 30 天内发布的文章显示为几天前,而过了 30 天即显示为正常的标准格式日期。评论日期时间显示效果参见本站评论。

首先, functions.php 中加入以下代码:


/**
 */
function timeago($time) {
    date_default_timezone_set ('ETC/GMT'); 
    $time = strtotime($time);
    $difference = time() - $time; 
    switch ($difference) { 
     case $difference &lt;= '1' : $msg = '刚刚'; break; case $difference &gt; '1' &amp;&amp; $difference &lt;= '60' : $msg = floor($difference) . '秒前'; break; case $difference &gt; '60' &amp;&amp; $difference &lt;= '3600' : $msg = floor($difference / 60) . '分钟前'; break; case $difference &gt; '3600' &amp;&amp; $difference &lt;= '86400' : $msg = floor($difference / 3600) . '小时前'; break; case $difference &gt; '86400' &amp;&amp; $difference &lt;= '2592000' : $msg = floor($difference / 86400) . '天前'; break; case $difference &gt; '2592000':
            $msg = ''.date('Y-m-d G:i:s',$time).'';
            break;
    } 
    return $msg;
}

文章和评论发布时间格式修改使用方法参见方法一。

本文来源于:挖主题

标签: ,

相关文章

评论神器一键自动填写昵称、邮箱和网址

适用WordPress、Typecho、ZBlog、Emlog、多说等平台的评论神器 javascr…

118
1个月前
WordPress 利用sql命令批量修改友情链接全部在新窗口打开

登陆数据库,然后执行 sql 命令: UPDATE Wp_links SET link_target…

86
1个月前
WordPress 网站优化加速

wodpress安装好后,为了适应国内网络环境,有些东西需要调整或是移除,可以有效的提高访问速度,主…

135
2个月前

共有0条评论

评论本文