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

投稿   慕斯琴  2016-12-26 07:22:26  892 人阅读  20 条评论

投放广告联系   诚邀合作伙伴   赞助我们   本站公告   轻松一刻

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

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

方法一:修改WordPress源文件

在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’ ) * 3600 ) ) );
  5. break;
  6. case ‘timestamp’:
  7. return ( $gmt ) ? time() : time() + ( get_option( ‘gmt_offset’ ) * 3600 );
  8. break;
  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’ ) * 3600 ) ) );
  5. break;
  6. case ‘timestamp’:
  7. return ( $gmt ) ? time() : time() + ( get_option( ‘gmt_offset’ ) * 3600 );
  8. break;
  9. }
  10. }

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

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

按照以下步骤操作

1、php.ini

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

2.WordPress后台设置UTC+8

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

解决wordpress发布时间显示为8小时前的3种办法 时区设置为UTC+8

3、主题中设置时间

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

以上两种方法,我测试无效,至少,针对我的主机和主题。

方法三:工单给阿里云的工程师

着急,无奈,直接在QQ群里发文,得到的答案无非就是服务器时间不准,或者后台时区设置错误。

我表示,我看过服务器时间,没有问题,死马当活马医,工单给阿里云的工程师。

解决wordpress发布时间显示为8小时前的3种办法 工单给阿里云的工程师

建议使用date命令看下服务器时间是否正常,同步内网和公共NTP时间服务器请参考: https://help.aliyun.com/knowledge_detail/40583.html

解决wordpress发布时间显示为8小时前的3种办法 看下服务器时间是否正常

好吧,服务器时间没有问题,那问题一定出在网站程序本身或者主题上。经过排查,我终于找到解决办法,欣喜若狂,不废话直接上代码。

1、在wp-config.phpwp-settings.php中都添加如下代码:

  1. date_default_timezone_set( 'Asia/Shanghai' );
  2. ini_set('date.timezone','Asia/Shanghai');

2、找到知更鸟主题路径下的default.php,即:begin/inc/function/default.php(大概566行和575行之间),将原来的代码:

  1. echo human_time_diff(get_the_time('U'), current_time('timestamp')).'前';

修改成:

  1. echo human_time_diff(get_the_time('U'), current_time('timestamp') - 28800).'前';

然后,我的wordpress前端显示时间终于恢复正常。

针对上面的几种方式,遇到我同样问题的站长朋友们可以试试,万一有效呢?但是要记住的是,修改文件之前,文件要保存备份一下哟!

历史上的今天:

文章标签: ,   ,  
原文地址:http://mus18.com/12216.html
温馨提示:文章内容仅代表作者个人观点,不代表boke112导航赞同其观点和对其真实性负责!
版权声明:本文为投稿文章,感谢 慕斯琴 的投稿,版权归原作者所有,欢迎分享本文,转载请保留出处!
WordPress虚拟主机和VPS服务器推荐

 发表评论


  1. 泛宝汇博客
    泛宝汇博客 【状元】 @回复

    技术好文 [强]

  2. 分钱榜
    分钱榜 【进士】 @回复

    很实用,不错的

  3. 雅兮网
    雅兮网 【尚书】 @回复

    这是想说啥,怎么看了半天看不懂!服务器端世界不和大陆时间一样这个问题么?

    • 慕斯琴
      慕斯琴 【小白】2016-12-26 17:18  回复

      @雅兮网哈哈,我也不晓得为啥,突然发现博客网站发出来的文章时间显示是8小时前,其实,我是1分钟之前发布的!

  4. 纯洁博客
    纯洁博客 【状元】 @回复

    现在几个小时前这样的挺好看的

  5. 凯哥自媒体
    凯哥自媒体 【小白】 @回复

    方法很实用额

  6. 动感单车
    动感单车 【尚书】 @回复

    [流汗] 几小时前的显示方式,本人非常的不喜欢,咱就喜欢自己博客目前的显示方式。

  7. 明月登楼的博客
    明月登楼的博客 【王爷】 @回复

    我发现CDN也会出现这样的状况!我也是醉了!

    • boke112导航
      boke112导航【村长】2016-12-26 21:42  回复

      @明月登楼的博客CDN也会出现?这个倒没注意到,不过部分虚拟主机倒是会出现这种问题

  8. 挖宝网
    挖宝网 【小白】 @回复

    没什么好说的,提前祝博主新年快乐!

  9. 码农BTS
    码农BTS 【状元】 @回复

    噗嗤感觉是个坑

  10. 金榜台博客
    金榜台博客 【状元】 @回复

    来看看是怎么回事?呵呵

  11. 艺米网
    艺米网 【秀才】 @回复

    为啥要显示8小时前

    • 码农BTS
      码农BTS 【状元】2016-12-26 14:44  回复

      @艺米网看起来像是惯例?

    • 慕斯琴
      慕斯琴 【小白】2016-12-26 17:16  回复

      @艺米网不是要让文章显示8小时前,是解决掉显示8小时前的问题,让文章发布时间和本地时间相吻合!

  12. 龙笑天
    龙笑天 【状元】 @回复

    马克一下~ 遇到过好几次了~ [抓狂]

  13. Koolight
    Koolight 【尚书】 @回复

    厉害,找得这么细!

  14. 网际电脑
    网际电脑 【状元】 @回复

    坐沙发人不上班的吗

  15. 爱时尚
    爱时尚 【尚书】 @回复

    来的太早了,又是沙发 [坏笑]

  16. 靠谱学生兼职网
    靠谱学生兼职网 【尚书】 @回复

    这个问题我一直遇到,一直不知道哪地方出错 。