吐槽:又见我WordPress后台8小时时间戳的时差,甚是不爽~
[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!
今天又闲着没事儿,看着我Wordpress每次发送文章的时候都是少了8小时,看着实在是不爽,但是还没搞定,卧槽!
瞅瞅这时间,相差时区8个小时,你说恼火不~~
尝试了如下:效果不佳;
方法一、修改php.ini,将默认时区改成:
date.timezone = "Asia/Shanghai"
方法二、在 wp-config.php中加入:
date_default_timezone_set('Asia/Shanghai');
方法三、在/wp-includes/functions.php中加入:
date_default_timezone_set('Asia/Shanghai');
以上三种方式,都没啥卵用,还有待继续尝试!
第四种方式:修改functions.php文件
打开网站目录下的wp-includes下的functions.php,大概在71行,注释一下原来的代码。
function current_time( $type, $gmt = 8 ) { // Don't use non-GMT timestamp, unless you know the difference and really need to. if ( 'timestamp' === $type || 'U' === $type ) { //return $gmt ? time() : time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); //解决wordpress 八小时前的问题 return ( $gmt ) ? strtotime(gmdate('Y-m-d H:i:s')) : strtotime(gmdate('Y-m-d H:i:s')) + ( get_option( 'gmt_offset' ) * 3600 ); } if ( 'mysql' === $type ) { $type = 'Y-m-d H:i:s'; } $timezone = $gmt ? new DateTimeZone( 'UTC' ) : wp_timezone(); $datetime = new DateTime( 'now', $timezone ); return $datetime->format( $type ); }
其实就是把原来的71行0变成了8
然后把 return $gmt ? time() : time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ); 屏蔽掉
换上 return ( $gmt ) ? strtotime(gmdate('Y-m-d H:i:s')) : strtotime(gmdate('Y-m-d H:i:s')) + ( get_option( 'gmt_offset' ) * 3600 );
但是对于我的操作,还是无效,真是愁人~~~~
第五种方式:未尝试;
从Wordpress 5.3+起,官方推荐使用wp_date替代原来的date_i18n函数。相对于date_i18n,wp_date最大的优势是可以接受Unix timestamp;
导致发帖后,时间戳相对于当前时区晚8小时的代码文件是 wp-admin/includes/meta-boxes.php
批量替换wp-admin/includes/meta-boxes.php中的date_i18n为wp_date。(DW一下,大约有六处)
第六种方式:未敢尝试
百度自动提交插件造成的,将其停用刷新一下更新页面缓存时差的问题就消失了;
问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信
所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!