我跑来一看还真的是这样,快了 8 个小时,什么鬼啊?谁搞我服务器了?昨天还是正常的啊,心动大佬你是不是搞我服务器了!!WordPress 的默认时区是 UTC 格林威治时间,我看我后台常规设置中选的就是上海时区,但是就算是将 WordPress 时区调整为上海或 UTC+8 后,前台评论时间显示均还是 UTC 时间,与北京时间仍有 8 小时的时差,而后台评论的时间是正确的,也就是说后台的时区设置对前台评论不起作用,又开始折腾了,跟群里的大佬们交流,各种检查,找到了几种方法能搞定这个时间不对的问题
在此之前,先用 Xshell 连接一下服务器,使用 date 命令看下服务器时间是否正确
date
如果正确,按照下面的方法走
方法一
修改 php.ini,将默认时区改成:
date.timezone = "Asia/Shanghai"
我这里时区直接设置的 PRC,没什么问题,还改成 Asia 试了一下,依旧没有解决问题
方法二
在wp-config.php中加入:
date_default_timezone_set('Asia/Shanghai');
方法三
在/wp-includes/functions.php中加入:
date_default_timezone_set('Asia/Shanghai');
以上三种方法按顺序我均试过无效,最后我也去问了主题作者,以为是评论时间戳的问题,然后在主题发布页那边找到了一个博主也遇到了这样的问题,去看他博客发布的代码,试了以后还是不行,仔细看了一下他整理的代码,我想到了问题的根源可能是timestamp函数有时差没解决所造成的,于是打开/wp-includes/functions.php文件查看,最后我找到了解决 WordPress 时区错误问题的最终解决方法。以下是时区错误的具体修改方法:
打开/wp-includes/functions.php文件,找到第 65-66 行将以下代码:
case 'timestamp': return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
修改为:
/* 解决评论时区错误问题 代码来源: https://qq52o.me/2194.html */ case 'timestamp': //return ( $gmt ) ? time() : time() + ( 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 );
原文地址:https://qq52o.me/2194.html
1、网站资源均通过网络等合法渠道获取,该资料仅作为学习交流,其版权归出版社或者原作者所有,下载后请于24小时内删除,如有真实需要请支持正版!因下载本站任何资源造成的损失,全部责任由使用者本人承担!本网站不对所涉及的版权问题负责。网站售卖的价格绝对不是商品价格,而是整理资料的成本。
2、如果你是版权方,认为本文内容对您的权益有所侵犯,请联系博主, 侵删联系 的说明提交相应的证明材料,待博主进行严格地审查后,情况属实的将在三天内将本文删除或修正。
3、博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己资源文章,请原谅博主成为一个文档搬运工!
4、本站虚拟货币充值或数字资源购买后,均不可以任何理由退换!购买前(请慎重考虑)
5、附注:根据二○○二年一月一日《计算机软件保护条例》规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。
6、数字千年版权法案(DMCA)DT模板网网站接受受版权保护的内容DMCA侵权通知。
联系客服