解决 wordpress 发布时间显示提前8小时的办法

  • A+
所属分类:代码审计

解决 wordpress 发布时间显示提前8小时的办法

刚刚发了一篇文章,瞅了一眼,时间显示是8小时前,什么鬼?我穿越到过去了?以前就遇到过了,不过一直懒得处理,今天就处理下吧,顺便记录下。

第一检查了仪表盘 – 设置 -常规,时区设置 都是没有问题的。

又检查了服务器的时间,也是没有问题的,谷歌了下相关的词,发现修改下文件即可。

wp-includes\functions.php 查找以下代码:

  1. function current_time( $type$gmt = 0 ) {
  2.     switch ( $type ) {
  3.         case 'mysql':
  4.             return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
  5.         case 'timestamp':
  6.             return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
  7.         default:
  8.             return ( $gmt ) ? date$type ) : date$type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
  9.     }
  10. }

换成:

  1. function current_time( $type$gmt = 8 ) {
  2.     switch ( $type ) {
  3.         case 'mysql':
  4.             return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
  5.         case 'timestamp':
  6.             return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
  7.         default:
  8.             return ( $gmt ) ? date$type ) : date$type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
  9.     }
  10. }

即可。

简单的讲就是把 wp-includes\functions.php

function current_time( $type, $gmt = 0 ) {

改成

function current_time( $type, $gmt = 8 ) {

0改成8

 

 


 

2017-11-16更:

以上的办法经过测试,发现刷新后又变回提前8小时了,网上有些做法发把时区改成UTC+8我也试过了,也是不行。

最后在一个群里,一个童鞋说把时区改成伦敦即可,然后真的可以了...

解决 wordpress 发布时间显示提前8小时的办法

问他为什么?他说:“涉及到地理知识 我就不解释了...”

然后我谷歌搜索了下,伦敦时间比北京慢8小时

解决 wordpress 发布时间显示提前8小时的办法

网络加速器推荐
老D

发表评论

您必须才能发表评论!

目前评论:3   其中:访客  3   博主  0

    • avatar mettlerhui 0

      一脸懵比的进来

      • avatar 堕落的鱼 0

        这个应该是begin主题时间处理的问题。

        • avatar 嗯喔啊咦 0

          一看就是UTC时间,我们这里的时间都是UTC+8