1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Zeit und Zeitzone einstellen

Dieses Thema im Forum "Konfiguration" wurde erstellt von Babelfisch, 14. September 2017.

Schlagworte:
  1. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Gleich vorweg: Das wurde schon mehrfach gefragt aber eine befriedigende Antwort habe ich bisher noch nicht zum Thema Zeitzone gefunden.

    Mir ist erst jetzt aufgefallen, dass in Wordpress und meinem WooCommerce Shop eine falsche Zeit verwendet wird. Die aktuelle Uhrzeit geht zwei Stunden vor und damit werden bspw. Bestellungen im Shop in der Zukunft getätigt. Das soll natürlich auf keinen Fall sein.

    Im Backend habe ich natürlich die korrekte Zeitzone Berlin gewählt aber offenbar stimmt schon die Ausgangszeit nicht:

    Koordinierte Weltzeit (UTC) ist 14.09.2017 23:33:09. Die Ortszeit ist 15.09.2017 1:33:09.​

    Nun ist aber zum Zeitpunkt der Lesung UTC 21:33 Uhr und die Ortszeit ist 23:33 Uhr.

    Wenn ich es richtig verstanden habe, liegt der Fehler bei Wordpress, welches als Basiszeit immer UTC nicht, egal welche Zeitzone auf dem Webserver eingestellt ist. Auf meinem Webserver ist eben CEST eingestellt, was sicherlich auch nicht ungewöhnlich ist.

    Auch nach einigem Googeln habe ich nichts gefunden, wie ich ohne große Verrenkungen die korrekte Zeit in Wordpress einstellen kann. Eigentlich muss WP ja nur die Zeitzone auf dem Server ermitteln und sich daraus dann UTC „basteln“ und damit dann die lokal eingestellte Zeitzone nutzen. Geht das echt nicht oder habe ich was übersehen?

    Gruß
     
  2. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Verwendet wird, was als Ortszeit angezeigt wird.
     
  3. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Meine Frage ist ja aber nun, wie ich Wordpress beibringe, die korrekte Ortszeit zu ermitteln? Natürlich kann ich eine falsche Zeitzone einstellen aber das kann es ja nicht sein.

    Ortszeit vom Server ist in meinem Beispiel (um bei der Zeit von gestern zu bleiben) der 14. September um 23:33 Uhr CEST. Laut Wordpress ist es aber 23:33 Uhr UTC und damit ist die Ortszeit von Wordpress in Berlin der 15. September um 01:23 Uhr. Wordpress nimmt also die Ortszeit ohne Rücksicht auf die echte Zeitzone und interpretiert sie als UTC.
     
    #3 Babelfisch, 15. September 2017
    Zuletzt bearbeitet: 15. September 2017
  4. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Ist denn auch in der php.ini die richtige Zeitzone eingestellt?
    http://php.net/manual/de/datetime.configuration.php

    Falls auf dem Server die Zeit in der richtigen Zeitzone läuft, in PHP diese Zeitzone aber nicht eingetragen ist, nimmt PHP die Server-Zeit als UTC, und Wordpress schlägt dann eben noch die zwei Stunden der eigenen Zeitzone drauf.

    Gruß
    Ingo
     
  5. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Ja, auf dem Server ist in der php.ini die Zeitzone korrekt gesetzt:

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    phpinfo() zeigt auch an:

    [TABLE="width: 934"]
    [TR]
    [TD="class: e, bgcolor: #CCCCFF"]date/time support [/TD]
    [TD="class: v, bgcolor: #DDDDDD"]enabled [/TD]
    [/TR]
    [TR]
    [TD="class: e, bgcolor: #CCCCFF"]"Olson" Timezone Database Version [/TD]
    [TD="class: v, bgcolor: #DDDDDD"]2017.2 [/TD]
    [/TR]
    [TR]
    [TD="class: e, bgcolor: #CCCCFF"]Timezone Database [/TD]
    [TD="class: v, bgcolor: #DDDDDD"]internal [/TD]
    [/TR]
    [TR]
    [TD="class: e, bgcolor: #CCCCFF"]Default timezone [/TD]
    [TD="class: v, bgcolor: #DDDDDD"]Europe/Berlin[/TD]
    [/TR]
    [/TABLE]

    In meinen eigenen Scripten nutze ich es ja auch und die PHP-Datumsfunktionen funktionieren alle korrekt. date(DATE_RFC2822) zeigt mir bspw. die korrekte lokale Zeit an und wenn ich vorher ein date_default_timezone_set('UTC') mache, dann wird auch die UTC-Zeit mit -2 Stunden korrekt angezeigt.
     
  6. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Hast Du geschaut, ob ein Plugin-Konflikt besteht?

    Welche PHP-Version ist installiert? Was wird als Server verwendet?
     
  7. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Gut.

    Ein häufiges Problem ist eine lokale php.ini (im Verzeichnis der Anwendung), die die globale php.ini ersetzt.
    Im Unterschied zur .htaccess-Datei wird eine lokale php.ini-Datei nicht zusätzlich zur globalen php.ini-Datei geladen, sondern an deren Stelle.
    Damit gehen alle gloabalen Einstellungen verloren und es werde nur die Einstellungen der lokalen ini-Datei wirksam.
    Für die Zeitzone bedeutet das, daß sie auf "leer" zurückgesetzt wird.

    Gruß
    Ingo
     
  8. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    @Edi: Plugins sind nicht daran Schuld. Auch ein „nackiges“ Wordpress zeigt die falsche Zeit an.

    @Ingo: Die php.ini wird nicht mit einer lokalen php.ini oder durch die .htaccess überschrieben. Die Ausgabe von phpinfo() habe ich auch aus einem Testscript direkt in dem DocumentRoot der Wordpress-Installtion geholt. Dort sind also exakt die gleichen Einstellungen aktiv wie in WP selbst.
     
  9. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Nachtrag noch zur Frage von Edi:

    PHP Version ist 7.1.6
    Server ist ein Managed Server bei DomainFactory
     
  10. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Noch einmal: Welche PHP-Version wird verwendet? Welcher Server?

    P. S.: Oops... Sorry!
     
  11. Edi

    Edi Well-Known Member

    Registriert seit:
    26. Juli 2006
    Beiträge:
    3.728
    Zustimmungen:
    1
    Kann/sollte zwar nicht daran liegen, aber versuche es einmal mit 7.0 oder 5.6.
     
  12. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Die 7.0.20 habe ich schon probiert und 5.6 kann ich wegen anderer Scripte unter der Domain nicht testen, da die PHP 7 brauchen. Unter 7.0 ist die Zeit jedenfalls immer noch falsch und PHP 5.6 werde ich mal versuchen lokal zu testen.
     
  13. Putzlowitsch

    Putzlowitsch Well-Known Member

    Registriert seit:
    21. Oktober 2006
    Beiträge:
    5.955
    Zustimmungen:
    47
    Wordpress setzt bei der Initialisierung in der wp-settings.php die PHP-Zeitzone mit date_default_timezone_set( 'UTC' ) auf UTC und rechnet dann intern immer mit UTC plus der in WP eingestellten Zeitzone. Falls nun nach der Initialisierung irgendwann die Zeitzone wieder auf die lokale Zeit gesetzt wird, rechnete WP dann entsprechend falsch.

    Du könntest mal alle php-Dateien der WP-Installtion (inkl. Theme und Plugins) nach der Funktion date_default_timezone_set durchsuchen.

    Gruß
    Ingo
     
  14. Babelfisch

    Babelfisch Well-Known Member

    Registriert seit:
    17. Mai 2016
    Beiträge:
    60
    Zustimmungen:
    4
    Grrrr, ein vergessener Codeschnipsel in der functions.php des Child Theme enthielt noch ein date_default_timezone_set('Europe/Berlin') :roll:

    Wieder einmal zeigt sich, dass das Problem vor dem Rechner sitzt. Danke für die Hilfe und Geduld!
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden