多语言展示
当前在线:1644今日阅读:27今日分享:41

解决wordpress发布时间显示为8小时前的3种办法

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

方法一:在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;}}

2

替换成如下代码即可: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;}}这样修改好后,在博客前台文章发表时间就是其实的本地化时间了。

3

方法二:按照以下步骤操作1、php.ini先保证你的搭建的PHP环境php.ini时间为东八区:date.timezone=Asia/Shanghai2.WordPress后台设置UTC+8仪表盘 – 设置 -常规,时区设置为UTC+8,如下图:3、主题中设置时间在你的主题文件functions.php中的第一个

5

方法三着急,无奈,直接在QQ群里发文,得到的答案无非就是服务器时间不准,或者后台时区设置错误。我表示,我看过服务器时间,没有问题,死马当活马医,工单给阿里云的工程师。建议使用date命令看下服务器时间是否正常,同步内网和公共NTP时间服务器请参考: https://help.aliyun.com/knowledge_detail/40583.html好吧,服务器时间没有问题,那问题一定出在网站程序本身或者主题上。经过排查,我终于找到解决办法,欣喜若狂,不废话直接上代码。1、在wp-config.php和wp-settings.php中都添加如下代码:date_default_timezone_set( 'Asia/Shanghai' );ini_set('date.timezone','Asia/Shanghai');(因未使用代码高亮,略丑,勿怪)2、找到知更鸟主题路径下的default.php即:begin/inc/function/default.php大概566行和575行之间,将原来的代码:echo human_time_diff(get_the_time('U'), current_time('timestamp')).'前';修改成:echo human_time_diff(get_the_time('U'), current_time('timestamp') - 28800).'前';END

推荐信息