wordpress文章发布时间差8小时解决方法

wordpress 2023-05-04 827次浏览

刚发布完一篇文章,回头刷页面看的时候,发现展示的时间是8小时之前发布,去后台看时间正常,我滴个乖乖,这什么鬼!

开始以为自己没有设置时区,检查了也正常,设置的上海没错(我自己脑子有泡,时区不对后台怎么会显示正常呢😂)。

网上搜一圈都是改代码的,头大。算了,怀疑是不是自己用的主题有问题,还是打印下看吧,果然,挨个打印后发现调用get_gmt_from_date()这个方法后就时间就不对了,恩,算是找到原因了。但这是官方的方法呀,想着不会有这么大个问题吧,也懒的查了。

主题内源代码是这样的:

echo timeago(get_gmt_from_date(get_the_time('Y-m-d G:i:s')));

打印后发现get_the_timeget_gmt_from_date输出的一致,没搞明白当时主题作者为啥还要再调一遍的用意,不管了,去掉了get_gmt_from_date这一层,果然,时间也正常了!

修改后:

echo timeago(get_the_time('Y-m-d G:i:s'));

顺便给大家分享下,timeago是主题自带的一个时间格式化小方法,代码如下:

function timeago($ptime) {
    $ptime = strtotime($ptime);
    $etime = time() - $ptime;
    if ($etime < 1) return '刚刚';
    $interval = array(
        12 * 30 * 24 * 60 * 60 => '年前 (' . date('Y-m-d', $ptime) . ')',
        30 * 24 * 60 * 60 => '个月前 (' . date('m-d', $ptime) . ')',
        7 * 24 * 60 * 60 => '周前 (' . date('m-d', $ptime) . ')',
        24 * 60 * 60 => '天前',
        60 * 60 => '小时前',
        60 => '分钟前',
        1 => '秒前'
    );
    foreach ($interval as $secs => $str) {
        $d = $etime / $secs;
        if ($d >= 1) {
            $r = round($d);
            return $r . $str;
        }
    };
}

wordpress文章发布时间差8小时解决方法

喜欢 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址