Неверное отображение UTC и локального времени только в WordPress
мой wordpress показывает неправильное время,
UTC время на картинке должно быть 18:06:28, а локальное время 15:06:28, то есть UTC время показывается как локальное время. Я использую собственный VPS на Digital Ocean и временная зона настроена правильно,
ls -l /etc/localtime
lrwxrwxrwx 1 root root 36 Apr 19 23:20 /etc/localtime -> /usr/share/zoneinfo/America/Santiago
также у меня есть другие PHP скрипты на сервере и время в них отображается правильно, например, cron задачи для WHMCS работают идеально, вот мои настройки времени в wordpress
Как это исправить? Проблема присутствует на всех моих сайтах wordpress, и в магазинах woocommerce время заказов также отображается неправильно.
Я использую PHP 7 и последнюю версию wordpress
Я уже пробовал настраивать timezone в php.ini и в глобальной конфигурации PHP установлено America/Santiago
Дата на сервере корректная
root@server:~# timedatectl
Local time: Fri 2018-04-20 22:15:40 -03
Universal time: Sat 2018-04-21 01:15:40 UTC
RTC time: Sat 2018-04-21 01:15:40
Time zone: America/Santiago (-03, -0300)
Network time on: yes
NTP synchronized: yes
RTC in local TZ: no
PHP тоже
php > echo date_default_timezone_get(time());
America/Santiago

Возможно, это решение поможет вам: https://wordpress.org/support/topic/utc-time-and-local-time-problems/
Там указано, что проблема в конфигурации PHP, а не WordPress.
(Привожу решение здесь для удобства)
Если у вас есть доступ к командной строке, проверьте правильность даты/времени при вводе команды "date". Если они неверны, обратитесь к вашему хостинг-провайдеру.
Попробуйте добавить правильный часовой пояс в php.ini: http://www.inmotionhosting.com/support/website/php/setting-the-timezone-for-php-in-the-phpini-file (И проверьте, отображается ли правильный пояс)
Проверьте ваши плагины - не изменяет ли какой-либо из них время в WordPress. В указанной выше теме проблема была решена отключением плагина календаря.
Эти две ссылки также могут помочь в поиске решения. Я не могу точно указать, что именно решит вашу проблему, так как в теме не хватает информации, но надеюсь, это прольет свет на вашу ситуацию!

привет, 1) дата отображает локальное время правильно 2) уже сделал, php.ini файл в папке wp и глобальная конфигурация php с правильным часовым поясом (america/santiago). 3) новых плагинов не устанавливал, у меня woocommerce, yoast, wp rocket, я не использую jetpack

+1 за то, что правильно разместили текст здесь, а не заставляли людей переходить по ссылкам ;)

@OsvaldoParra ты проверял, правильно ли отображается часовой пояс в info.php? В одном из ответов по ссылке предлагают добавить php-скрипт, который отображает время UTC для дальнейшего тестирования: https://wordpress.org/support/topic/utc-time-wrong/page/2/#post-8654937
Попробуй это в PHP-скрипте. Не в WordPress, а просто отдельный скрипт на твоем сервере.
date_default_timezone_set( 'UTC' );
echo date('Y-m-d G:i:s');
Это должно, очевидно, выводить время UTC. Так и есть?
Также, спасибо @MarkKaplun ;)

@atempel нет, не влияет, эта строка показывает локальное время, проверьте https://la-maria.cl/test/info.php, время на info.php - это локальное время

@OsvaldoParra Должно отображаться время, которое вы настроили в php.ini. Попробуйте установить часовой пояс в php.ini как 'UTC' и оставьте настройку в Wordpress с вашим локальным часовым поясом. Wordpress имеет собственную систему управления временем, поэтому он может предполагать, что время по умолчанию в PHP - UTC, и так как вы его изменили, на фронтенде отображается некорректно.

Попробуйте выполнить поиск по всем файлам в вашей папке /wp-content/ на предмет использования этой функции:
date_default_timezone_set
Если тема или плагин вручную задают временную зону, это может нарушить работу вашей установки WordPress. У меня была точно такая же ситуация, и источником проблемы оказалась эта строка в начале файла functions.php темы:
date_default_timezone_set( 'America/New_York' );
В результате в разделе Настройки > Общие отображалось неверное время UTC:
Универсальное время (UTC) 2018-10-05 12:05:18. Местное время 2018-10-05 08:05:18.
После удаления этой строки время стало отображаться корректно:
Универсальное время (UTC) 2018-10-05 16:06:01. Местное время 2018-10-05 12:06:01.

У меня была та же проблема, вызванная неправильным содержимым файла /usr/share/zoneinfo/UTC. После восстановления корректной версии файла проблема была решена. Если при выводе содержимого /usr/share/zoneinfo/UTC отображается больше 3 строк или показываются другие временные зоны кроме UTC, значит файл содержит некорректные данные.

Как упомянул @Jan-Pieter - это может быть связано с повреждённым файлом /usr/share/zoneinfo/UTC. Если у вас нет оригинального файла, вы можете сбросить его к состоянию по умолчанию.
В дистрибутивах на основе Debian, включая Ubuntu, выполните следующую команду по SSH:
$sudo apt-get install --reinstall tzdata
Для CentOS (или других дистрибутивов на основе Red Hat) используйте:
$sudo yum reinstall tzdata
Или для новых версий, использующих dnf:
$sudo dnf reinstall tzdata
