Поле ревизии WordPress всегда показывает «4 часа назад» при создании новой ревизии - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь понять, почему в моих установках WordPress для разработки и производства отображается неправильное время ревизии в поле в нижней части экрана редактирования поста.На текущем экране ревизии указано правильное время, но не в этом поле.

Описание проблемы:

Я заметил, что на экране редактирования поста в wp-admin появится окно ревизий«X часов / минут назад», и сразу 4 часа от текущего времени, когда создается новая ревизия.Определенно пахнет проблемой с часовым поясом.

Я отследил код ядра WordPress в строке wp-includes / post-template.php 1839 :

$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 часа (смещение по Гринвичу), в результате чего печатное время будет "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') возвращает местное время - смещение по Гринвичу.

Наконец, мой вопрос: это ошибка в WordPress?Это предназначено, когда вы специально устанавливаете часовой пояс Америка / New_York?Или что-то еще происходит, что я не рассматриваю?

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...