Seite 2 von 3
Verfasst: 29.03.2004 19:17
von LuLa
Dennis Böge hat geschrieben:Evtl geht die Server-Uhr ja auch nochmal eine Stunde falsch...
Hui, das könnte sein. Gibt es in den USA überhaupt eine Sommerzeit?
Falls nein, dann müßte ja bei uns
jeder Board-User sein Profil ändern...

Puh!!
LG
LuLa
Verfasst: 29.03.2004 19:25
von Sujao
Soweit ich weiß gibt es in den USA keine Sommerzeit.
Verfasst: 30.03.2004 19:58
von sAnSiBaR
hi,
hab ein phpbb2.0.6 am laufen, und dort wird meines wissens nach (steht ja auch hier im thread) die zeit automatisch umgestellt.
schön und gut !
dabei wurden aber alle beiträge vor der umstellung auch automatisch +1h gesetzt.
welche änderungen muss ich unternehmen, damit die alten beiträge wieder ihre richtige uhrzeit bekommen ? (und die neuen natürlich ihre zeit behalten ?)
thx,
sansibar
Verfasst: 30.03.2004 20:07
von roger
Also normalerweise wird im Original-phpBB die Zeit
nicht automatisch umgestellt, - dazu muss eine Änderung im Quelltext vorgenommen werden... Die amerikanischen Provider stellen genausowenig um wie die europäischen... Es wird über "I" in php ein Indikator für die Sommerzeit geliefert...
Du solltest im übrigen
hier nachschauen...
roger
Verfasst: 30.03.2004 21:43
von sAnSiBaR
demnach ist meine version damit ausgestattet ?!
oder doch nicht ?
Verfasst: 30.03.2004 22:19
von roger
Wenn Du als Board-Zeit z.B. "GMT+1" eingestellt hast, sollte es mit der derzeit in Deutschland geltenden Uhrzeit übereinstimmen,
wenn nicht, dann wohl noch nicht...
roger
Verfasst: 30.03.2004 22:34
von Sujao
@sansibar: ich hatte mir damals auch 2.0.6 runtergeladen und ich hatte den Code NICHT drin. Ich zwar nicht mehr ob es "c" oder "d" war, aber es war so Ende Dezember.
Die Tatsache, dass auch bei allen alten Beiträgen eine Stunde addiert wird ist zwar nicht wirklich schlimm, aber doch irgendwie unschön. Eigentlich müsste ja nicht bei der Anzeige eine Stunde adiert werden sondern bei der Speicherung des Erstelldatums.
Verfasst: 31.03.2004 13:19
von Uruwa
Das Problem ist, dass die Codekorrektur selbst noch einen kleinen Fehler enthält. Dort wird wenn eine Stunde addiert, wenn das Systemdatum in die Sommerzeit fällt und nicht wie gewollt das zu formatierende Datum.
Die Zeile muss daher so aussehen:
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))));
Verfasst: 31.03.2004 16:59
von Sujao
@uruwa: ich hab ehrlich gesagt nicht so genau verstanden was du meinst. Kannst du das bitte noch ein Mal anders erklären?
Verfasst: 31.03.2004 23:59
von Uruwa
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...