wordpress修改时间的显示格式,没8小时错误

做wordpress主题时,发现大家喜欢修改时间的显示格式,在网路上,也有一个比较全的代码,如下:

/**
 * WordPress 修改时间的显示格式为几天前
 * form www.wpdaxue.com/time-ago.html
 */
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) . __( '前' , 'limiwu' );
    }
    else if (($diff <= 86400) && ($diff > 3600)) {
     
        $hours = round($diff / 3600);
        if ($hours <= 1) {
     
            $hours = 1;
        }
        $time = sprintf(_n('%s 小时', '%s 小时', $hours), $hours) . __( '前' , 'limiwu' );
    }
    elseif ($diff >= 86400) {
     
        $days = round($diff / 86400);
        if ($days <= 1) {
     
            $days = 1;
            $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'limiwu' );
        }
        elseif( $days > 29){
     
            $time = get_the_time(get_option('date_format'));
        }
        else{
     
            $time = sprintf(_n('%s 天', '%s 天', $days), $days) . __( '前' , 'limiwu' );
        }
    }
    return $time;
}
add_filter('the_time','Bing_filter_time');

但这个使用后发现,一直存在8小时的错误,我看了下代码,是在$form时间上出现了错误。因为我们地处东8区,而function本身是获取的U标准时间,所以出现了错误。简单更改如下:

$from = get_the_time('U+8') ;

问题就解决了,

你可能感兴趣的:(wordpress主题制作,wordpress,时间)