UTC și ora locală greșită doar în WordPress
WordPress-ul meu arată ora greșită,
Ora UTC din imagine ar trebui să fie 18:06:28 și ora locală 15:06:28, deci ora UTC este afișată ca oră locală. Folosesc propriul VPS pe Digital Ocean și fusul orar este corect,
ls -l /etc/localtime
lrwxrwxrwx 1 root root 36 Apr 19 23:20 /etc/localtime -> /usr/share/zoneinfo/America/Santiago
De asemenea, am alte scripturi PHP pe server și ora este corectă, cron job-ul pentru WHMCS de exemplu funcționează perfect, aceasta este configurația mea de timp în WordPress
Cum pot rezolva acest lucru? Problema apare în toate site-urile mele WordPress, iar site-urile WooCommerce au ora greșită și la comenzi.
Folosesc PHP 7 și ultima versiune de WordPress
Am încercat deja cu timezone în php.ini și în configurația globală PHP am America/Santiago
Data pe server este ok
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 la fel
php > echo date_default_timezone_get(time());
America/Santiago

Aceasta ar putea fi o soluție pentru tine: https://wordpress.org/support/topic/utc-time-and-local-time-problems/
Se menționează că este o problemă cu configurația PHP, nu cu WordPress.
(Adaug soluția aici pentru referință ușoară)
Dacă ai acces la shell, primești data/ora corectă când tastezi „date” în linia de comandă? Dacă este greșit, contactează gazda ta de hosting.
Încearcă să adaugi fusul orar corect în php.ini: http://www.inmotionhosting.com/support/website/php/setting-the-timezone-for-php-in-the-phpini-file (Și verifică dacă afișează zona corectă)
Verifică pluginurile tale, dacă vreunul modifică ceva în ceasul WordPress. În linkul trimis mai sus, problema a fost rezolvată prin dezactivarea unui plugin de calendar.
Ambele linkuri de mai jos te pot ajuta în căutarea ta, nu pot indica exact ce ar putea rezolva deoarece lipsesc informații suplimentare despre ce se spune acolo, dar sper că vor aduce puțină lumină asupra problemei tale!

salut, 1) data afișează ora locală corect 2) deja am făcut, un fișier php.ini în folderul wp și configurația globală php cu fusul orar corect (america/santiago). 3) niciun plugin nou instalat, am woocommerce, yoast, wp rocket, nu folosesc jetpack

+1 pentru că ai pus textul aici în loc să forțezi oamenii să urmărească linkurile ;)

@OsvaldoParra ai verificat dacă afișează fusul orar corect în info.php? Acest răspuns de pe unul dintre linkuri propune să adaugi un script php care afișează ora UTC pentru a testa mai departe: https://wordpress.org/support/topic/utc-time-wrong/page/2/#post-8654937
Încearcă asta într-un script PHP. Nu în WordPress, doar un script independent pe serverul tău.
date_default_timezone_set( 'UTC' );
echo date('Y-m-d G:i:s');
Asta ar trebui, evident, să afișeze ora UTC. O face?
Și mulțumesc @MarkKaplun ;)

@atempel nu, nu o face, acea linie afișează ora locală, verifică https://la-maria.cl/test/info.php, ora pe info.php este ora locală

@OsvaldoParra Ar trebui să afișeze ora pe care ai configurat-o în php.ini. Încearcă să setezi fusul orar în php.ini ca 'UTC' și păstrează configurația în Wordpress cu fusul tău orar local. Wordpress are propriul sistem pentru gestionarea timpului, așa că ar putea presupune că ora implicită în PHP este UTC, iar din moment ce ai schimbat-o, afișează greșit pe front-end.

Încearcă să cauți în toate fișierele din folderul /wp-content/ orice referință la această funcție:
date_default_timezone_set
Dacă o temă sau un plugin definește manual această funcție, aceasta poate afecta instalarea ta de WordPress. Am avut o situație exact ca cea pe care o descrii aici, iar sursa a fost această linie din partea de sus a fișierului functions.php al temei:
date_default_timezone_set( 'America/New_York' );
Aceasta a dus la afișarea unui timp UTC incorect în secțiunea Setări > General:
Timpul universal (UTC) este 2018-10-05 12:05:18. Ora locală este 2018-10-05 08:05:18.
După eliminarea ei, timpii corecti au apărut:
Timpul universal (UTC) este 2018-10-05 16:06:01. Ora locală este 2018-10-05 12:06:01.

Am avut aceeași problemă, cauzată de conținutul incorect al fișierului /usr/share/zoneinfo/UTC. După ce am restaurat o versiune corectă, problema a fost rezolvată. Dacă comanda strings /usr/share/zoneinfo/UTC
afișează mai mult de 3 linii sau afișează alte fusuri orare în afară de UTC, acest fișier nu are conținutul corect.

După cum a menționat @Jan-Pieter - aceasta ar putea fi din cauza unui fișier /usr/share/zoneinfo/UTC corupt. Dacă nu aveți o copie originală, îl puteți reseta la valorile implicite.
Pe distribuții bazate pe Debian, inclusiv Ubuntu, rulând următoarea comandă SSH: $sudo apt-get install --reinstall tzdata
Pentru CentOS (sau alte distribuții bazate pe Red Hat), ați folosi:
$sudo yum reinstall tzdata
Sau pentru versiunile mai noi care folosesc dnf:
$sudo dnf reinstall tzdata
