Hallo
Mir ist gerade ein seltsamer Fehler im Forum aufgefallen. Ich weiss jetzt nicht, ob das mit dem Automatic DST Mod zusammenhängt oder nicht. Aber priniziell greift die Heute/Gestern Anzeige ja nur auf den Timestamp zurück, unabhängig wie dieser erzeugt wurde, oder?
Ersteinmal: Ich stelle das Datum im Forum mit dem "vor einigen Minuten, Heute, Gestern" Typ dar.
Ich habe einen Beitrag, welcher am 01.12.14 um 23:30 verfasst wurde.
Im Thema selber steht Heute: 23.12.14 verfasst - da sollte aber Gestern: 23.12.14 stehen!
Clicke ich aber auf das Icon mit dem Fragezeigen für die Beitragsdetails, steht dort verfasst Gestern 23.12.14
so nun frage ich mich, wie kann es zu diesen zwei verschiedenen Anzeigen kommen? Und wo müsste ich überhaupt mit der Fehlersuche beginnen??
Gestern/Heute Falschanzeige
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Gestern/Heute Falschanzeige
Hallo
Ich habe diesen Fehler heute schon wieder.
Jemand hat am 28.12 umd 23:53 einen Beitrag verfasst.
Wenn ich die Datumsanzeige auf ein normales Datum (also ohne Gestern/Heute/vor wenigen Minuten) stelle, wird die Uhrzeit und das Datum korrekt angezeigt.
Stelle ich aber auf die "vor wenigen Minuten/Gestern/Heute" Anzeige um, steht bei dem Beitrag, der am 28.12 geschrieben wurde: Gestern 23:53!
Was stimmt da nicht?
Ich vermute mal, dass diese Funktion auch auf Sommerzeit/Winterzeit reagiert. Kann man im Code diese Zeitabfrage nicht entfernen? Ich benutze im Forum die Sommerzeit/Winterzeit nicht, da ich den Automatic DST Mod habe
Ich habe diesen Fehler heute schon wieder.
Jemand hat am 28.12 umd 23:53 einen Beitrag verfasst.
Wenn ich die Datumsanzeige auf ein normales Datum (also ohne Gestern/Heute/vor wenigen Minuten) stelle, wird die Uhrzeit und das Datum korrekt angezeigt.
Stelle ich aber auf die "vor wenigen Minuten/Gestern/Heute" Anzeige um, steht bei dem Beitrag, der am 28.12 geschrieben wurde: Gestern 23:53!
Was stimmt da nicht?
Ich vermute mal, dass diese Funktion auch auf Sommerzeit/Winterzeit reagiert. Kann man im Code diese Zeitabfrage nicht entfernen? Ich benutze im Forum die Sommerzeit/Winterzeit nicht, da ich den Automatic DST Mod habe
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Gestern/Heute Falschanzeige
Und wann hast du die Anzeige überprüft? Oder anders gefragt, was hätte da stehen sollen? 23:52 ist ziemlich spät. Wenn du das nach 24 Uhr abgelesen hast, dann stimmt die Anzeige doch.
Es kann aber durchaus sein, dass der DST Mod einen Fehler hat.
Es kann aber durchaus sein, dass der DST Mod einen Fehler hat.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Re: Gestern/Heute Falschanzeige
Es ist so:
ich habe es am 30.12 gesehen. Da hätte also nicht Gestern sondern eben das normale Datum stehen müssen.
In den Beitragsdetails (wenn man auf das Fragezeichen Icon klickt) stand auch das richtige Datum, ohne das Gestern.
Ich denke auch dass es am Auto DST Mod liegen müsste. Nur wo müsste ich da schauen?
Es passiert wirklich nur, wenn man nach 23 und vor 24 Uhr Beiträge schreibt. Ganz so, als ob da irgendwo die Sommer/Winterzeit noch hinzugerechnet wird.
Aber wie gesagt habe ich das nicht überall.
Im Beitrag selbst stimmte die Anzeige. In der Forenansicht wohl auch. Ich weiss es nicht mehr. Ich könnte einen Testbeitrag nach 23 Uhr verfassen und ihn morgen und übermorgen beobachten.
Aber greift diese Anzeige nicht einfach auf den Timestamp zurück? Müsste es nicht immer dasselbe anzeigen?
Weil ohne DST Mod wird ja die Winterzeit im Timestamp direkt verarbeitet und berücksichtigt.
ich habe es am 30.12 gesehen. Da hätte also nicht Gestern sondern eben das normale Datum stehen müssen.
In den Beitragsdetails (wenn man auf das Fragezeichen Icon klickt) stand auch das richtige Datum, ohne das Gestern.
Ich denke auch dass es am Auto DST Mod liegen müsste. Nur wo müsste ich da schauen?
Es passiert wirklich nur, wenn man nach 23 und vor 24 Uhr Beiträge schreibt. Ganz so, als ob da irgendwo die Sommer/Winterzeit noch hinzugerechnet wird.
Aber wie gesagt habe ich das nicht überall.
Im Beitrag selbst stimmte die Anzeige. In der Forenansicht wohl auch. Ich weiss es nicht mehr. Ich könnte einen Testbeitrag nach 23 Uhr verfassen und ihn morgen und übermorgen beobachten.
Aber greift diese Anzeige nicht einfach auf den Timestamp zurück? Müsste es nicht immer dasselbe anzeigen?
Weil ohne DST Mod wird ja die Winterzeit im Timestamp direkt verarbeitet und berücksichtigt.
- gn#36
- Ehrenadmin
- Beiträge: 9313
- Registriert: 01.10.2006 16:20
- Wohnort: Ganz in der Nähe...
- Kontaktdaten:
Re: Gestern/Heute Falschanzeige
Hm...
Ich habe gerade nicht im Kopf, was der Auto-DST Mod genau ändert, die interessantere Frage ist aber vor allem, wie das "Gestern" und "Heute" überhaupt berechnet wird. Das passiert normalerweise in der includes/sessions.php
An dieser Stelle wird Mitternacht berechnet. Die Idee ist, dass man mit gmdate erst mal den aktuellen Tag bestimmt (hier wird die Zeitzone addiert, weil man sonst immer den aktuellen Tag in England im Winter berechnen würde und größere Zeitzonen ggf einen späteren Tag haben) und anschließend den Unix Timestamp vom GMT Mitternacht mit gmmktime, wobei dieses mal anschließend der Zeitzonenoffset subtrahiert wird, weil größere Zeitzonen früher als England Mitternacht haben.
Die Variable $zone_offset wird so berechnet: Hier sind die Zeitzone und dst jeweils mit 3600 multipliziert, um sie in Sekunden umzurechnen.
Danach wird nur noch mit Mitternacht verglichen und für die jeweiligen Abstände berechnet, ob die aktuelle Zeit nah genug an Mitternacht liegt, was imho korrekt abläuft.
Da die Funktion praktisch für alle Datumsformatierungen benutzt wird könntest du vielleicht mal reinschauen, wie sich die aktuelle Original Version und die des DST Mods unterscheiden, wenn überhaupt. Wenn nicht, sollten wir erst mal schauen wie der Auto-DST Mod das macht.
Ich habe gerade nicht im Kopf, was der Auto-DST Mod genau ändert, die interessantere Frage ist aber vor allem, wie das "Gestern" und "Heute" überhaupt berechnet wird. Das passiert normalerweise in der includes/sessions.php
Code: Alles auswählen
2180 if (!$midnight)
2181 {
2182 list($d, $m, $y) = explode(' ', gmdate('j n Y', time() + $zone_offset));
2183 $midnight = gmmktime(0, 0, 0, $m, $d, $y) - $zone_offset;
2184 }
$zone_offset
soll der Offset durch die Zeitzone sein. Die Variable $zone_offset wird so berechnet:
Code: Alles auswählen
$zone_offset = $this->timezone + $this->dst;
Danach wird nur noch mit Mitternacht verglichen und für die jeweiligen Abstände berechnet, ob die aktuelle Zeit nah genug an Mitternacht liegt, was imho korrekt abläuft.
Da die Funktion praktisch für alle Datumsformatierungen benutzt wird könntest du vielleicht mal reinschauen, wie sich die aktuelle Original Version und die des DST Mods unterscheiden, wenn überhaupt. Wenn nicht, sollten wir erst mal schauen wie der Auto-DST Mod das macht.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Re: Gestern/Heute Falschanzeige
Ok. der obere Teil ist genau gleich
das hier ist die Änderung:
Was mich nur verwirrt ist, dass dieser Fehler NUR auf der Foren-Hauptseite passiert
In den Foren und Themenübersichten, sowie im Thema selbst, wird es richtig angezeigt. Nur auf der Indexseite spinnt die Anzeige.
Wie kann das sein?
das hier ist die Änderung:
Code: Alles auswählen
// alte Funktion Sommerzeit $zone_offset = $this->timezone + $this->dst;
$zone_offset = $this->timezone + date('I', $gmepoch) * 3600;
In den Foren und Themenübersichten, sowie im Thema selbst, wird es richtig angezeigt. Nur auf der Indexseite spinnt die Anzeige.
Wie kann das sein?
Re: Gestern/Heute Falschanzeige
