创建新修订版时,WordPress修订版框始终显示“ 4小时前”

时间:2018-10-12 20:24:25

标签: php wordpress timezone

我试图了解为什么我的开发和生产WordPress安装在帖子编辑屏幕底部的框中​​显示错误的修订时间。时间在实际修订屏幕上是正确的,但不在该框中。

问题描述:

我注意到在wp-admin的帖子编辑屏幕上,修订框将显示“ X小时/分钟前”,并且与创建新修订本的当前时间相距4小时。绝对闻起来像时区问题。

我在wp-includes/post-template.php line 1839中找到了WordPress核心代码:

$revision_date_author = sprintf(
    /* translators: post revision title: 1: author avatar, 2: author name, 3: time ago, 4: date */
    __( '%1$s %2$s, %3$s ago (%4$s)' ),
    $gravatar,
    $author,
    human_time_diff( strtotime( $revision->post_modified ), current_time( 'timestamp' ) ),
    $date
);

我在此地点的上方添加了一些调试代码,以确认时区为 America / New_York

strtotime($ revision-> post_modified)似乎返回了修改帖子的正确本地时间。

但是 current_time('timestamp')似乎要占用本地服务器时间,然后减去4小时(GMT偏移),导致打印时间在发布/发布后立即为“ 4小时前”正在更新。

如果您单击修订,则修订屏幕(wp-admin/includes/revision.php)会显示正确的human_time_diff()(例如1分钟前之类的内容)。我找到了该代码:

sprintf( __( '%s ago' ), human_time_diff( $modified_gmt, $now_gmt ) ),

$ now_gmt 在功能的最上方设置为 $ now_gmt = time();

所以看来问题在于 current_time('timestamp')返回本地时间-GMT偏移量。

最后,我的问题:这是WordPress中的错误吗?当您将时区专门设置为America / New_York时,这是要使用的吗?还是正在发生其他我没有考虑的事情?

欢呼

0 个答案:

没有答案