O.K. ich mach das mal etwas ausführlicher. Alle Datums-/Zeitwerte werden in der Datenbank grundsätzlich als GMT+0 abgespeichert und bei der Ausgabe formatiert. Die genannte Codezeile gehört zur Funktion
create_date, die diese Formatierung vornimmt.
Der Header der Funktion sieht wie folgt aus:
Die Paramter sind:
1. der Formatierungsstring, den Du im Adminbereich für das Board vorgibst, bzw. im Benutzerprofil eingestellt werden kann,
2. die auszugebende Zeit in GMT+0,
3. die Zeitzone.
Ich stelle jetzt mal die weiter oben genannte Anpassung für Sommerzeit meiner geänderten Codezeile gegenüber:
Code: Alles auswählen
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I")))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I"))));
Code: Alles auswählen
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * ($tz+date("I", $gmepoch)))), $translate) : @gmdate($format, $gmepoch + (3600 * ($tz+date("I", $gmepoch))));
Der Unterschied liegt hier:
statt
Wir die PHP Funktion
date ohne Datums-/Zeitwert aufgerufen, so wird die aktuelle Systemzeit des Servers verwendet. Die Folge: wenn die aktuelle Serverzeit in die Sommerzeit fällt werden alle Datums-/Zeitwerte um 1 Stunde verschoben. Daher muss natürlich die zu formatierdende Zeit als Datums-/Zeitwert an die date-Funktion übergeben werden, denn die soll ja wenn sie in die Sommerzeit fällt um 1 Stunde erhöht werden.
Ich hoffe, ich hab das jetzt einigermaßen verständlich erklärt...