Gestern/Heute Falschanzeige

Fragen zur Bedienung von phpBB 3.0.x, Probleme bei der Benutzung und alle weiteren Fragen inkl. Update auf die neuste phpBB 3.0.14 Version
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.
Antworten
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Gestern/Heute Falschanzeige

Beitrag von Maugrim »

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??
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Gestern/Heute Falschanzeige

Beitrag von Maugrim »

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
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Gestern/Heute Falschanzeige

Beitrag von gn#36 »

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.
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.
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Gestern/Heute Falschanzeige

Beitrag von Maugrim »

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.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Re: Gestern/Heute Falschanzeige

Beitrag von gn#36 »

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

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          }
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. $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; 
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.
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.
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Gestern/Heute Falschanzeige

Beitrag von Maugrim »

Ok. der obere Teil ist genau gleich

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;
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?
Benutzeravatar
Maugrim
Mitglied
Beiträge: 461
Registriert: 16.11.2009 20:22

Re: Gestern/Heute Falschanzeige

Beitrag von Maugrim »

:-? Hallo, schon irgendjemand eine Idee, woran das liegen könnte?
Antworten

Zurück zu „[3.0.x] Administration, Benutzung und Betrieb“