WordPress发布时间不正确显示为8小时前

刚刚发了一篇文章,瞅了一眼,时间显示是 8 小时前,什么鬼?我穿越到过去了?好吧,倒是想回到过去,可是这也能想想。又要开始折腾了,各种百度,各种检查,找到几种方法能搞定这个时间不对的问题。

方法一:修改wordpress源文件


在 wp-includes\functions.php 文件里查找下面代码

function current_time( $type, $gmt = 0 ) {switch ( $type ) {case ‘mysql’:return ( $gmt ) ? gmdate( ‘Y-m-d H:i:s’ ) : gmdate( ‘Y-m-d H:i:s’, ( time() + ( get_option( ‘gmt_offset’ ) * 3600 ) ) );break;case ‘timestamp’:return ( $gmt ) ? time() : time() + ( get_option( ‘gmt_offset’ ) * 3600 );break;}}

替换成如下代码即可:

function current_time( $type, $gmt = 8 ) {switch ( $type ) {case ‘mysql’:return ( $gmt ) ? gmdate( ‘Y-m-d H:i:s’ ) : gmdate( ‘Y-m-d H:i:s’, ( time() + ( get_option( ‘gmt_offset’ ) * 3600 ) ) );break;case ‘timestamp’:return ( $gmt ) ? time() : time() + ( get_option( ‘gmt_offset’ ) * 3600 );break;}}

这样修改好后,在博客前台文章发表时间就是其实的本地化时间了。

方法二:WordPress 后台设置 UTC+8


按照以下步骤操作

1、php.ini

先保证你的搭建的 PHP 环境 php.ini 时间为东八区:date.timezone=Asia/Shanghai

2.WordPress 后台设置 UTC+8

仪表盘 – 设置 -常规,时区设置为 UTC+8,如下图:

3、主题中设置时间

在你的主题文件functions.php中的第一个<?php字符换行插入date_default_timezone_set(PRC);

以上两种方法,可以解决99%的问题,最后1%可能是服务器时间不对,这个问题本站以及发过相关文章。

发表评论