Es gibt einige Optionen, von denen keine wirklich gut funktioniert. Dies ist ein WordPress-Fehler, und es ist wirklich zum Kotzen, weil die Zeit falsch ist, es sei denn, Sie setzen Ihre Site auf UTC ... was verwirrend und nicht immer möglich ist.
Dieser nächste Code funktioniert meiner Meinung nach nur, wenn Sie Ihre Zeitzone (unter Einstellungen -> Allgemein in Admin) als benannte Stadt anstatt durch einen GMT-Nummernversatz auswählen. Ich habe das nicht getestet, aber es ist sehr gut möglich, dass festgelegt get_option('gmt_offset')
wird, wann get_option('timezone_string')
nicht.
date_default_timezone_set(get_option('timezone_string'));
Der Nachteil dabei ist, dass WordPress davon ausgeht, dass PHP bei der Erstellung von MySQL-Zeitstempeln auf UTC eingestellt ist, sodass Sie Ihre Datenbank ein wenig durcheinander bringen können, wenn Sie die Zeitzone wechseln! Ganz zu schweigen von anderen WP-Plugins kann davon ausgegangen werden, dass die PHP-Umgebung immer in UTC ist.
Wenn Sie also nur eine korrekte Uhrzeit wünschen, können Sie erzwingen, dass Ihr Zeitstempel in UTC angezeigt wird:
get_post_time('c', true); //should work for non-post objects.
Leider wird die Zeitzone dadurch auf UTC gesetzt, obwohl dies korrekt ist.
Beachten Sie außerdem, dass Sie nicht sowohl das Flag "true" als auch die Standardfunktion "timezone_set" verwenden können.
Jede richtige Lösung wird ein Code-Snippet sein, das beide gmt_offset
UND-Verknüpfungen berücksichtigt timezone_string
und sie verwendet, um eine Zeitzone für einige Eingaben festzulegen. WP geht davon aus, dass PHP bei der Ausführung von MySQL-Zeitstempeln auf UTC gesetzt ist und möglicherweise andere Plugins beschädigt.
Es gibt eine solche Lösung auf https://www.skyverge.com/blog/down-the-rabbit-hole-wordpress-and-timezones/ , aber auch dies ist ein BUG, daher sollten Sie den get_post_time($date_format, TRUE)
Code verwenden, um einen Zeitstempel dafür zu erhalten ist eigentlich richtig.