MyBB.de Forum

Normale Version: [G] Problem mit Geburtstagsanzeige - > Datum verändert sich
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

nach dem jahreswechsel hat sich irgendwas bei der Datumsanzeige des Geburtstages verändert. Das Datum ist bei allen usern um einen Tag zurückgegangen. Im ACP habe ich jetzt keine Einstellung gefunden, die das Problem behebt.
Hast Du diese Änderung schon durchgeführt?

ist bei uns auch so passiert (bis jetzt bei 1 User)
im Kalender wird das Datum korrekt angezeigt
aber im Persönlichen Profil 1 Tag früher als ursprünglich eingegeben.
Das eingegebene Jahr ist ganz verschwunden und das deutsche Datumsformat ist auch weg (Anzeige May statt Mai)

[attachment=253] [attachment=254]

Termineingaben im Kalender sind nicht betroffen.



en-gedi schrieb:Hast Du diese Änderung schon durchgeführt?

Ja Smile
Immer wieder diese Kalender-Bugs Wink

Hab´s jetzt auch mal lokal getestet ... stimmt leider!

Ich habe dazu einen neuen Benutzer angelegt und dessen Geburtsdatum immer wieder verändert. Solange das Geburtsdatum im Bereich 30.10. - 26.03. (einschließlich dieser Tage) liegt, wird alles korrekt angezeigt.

Bei einem Geburtsdatum im Bereich 27.03. - 29.10. (einschl.), wird in der Detailansicht des Kalenders, also wenn man auf den Geburtstag klickt, das Geburtsdatum um einen Tag zurückgesetzt. Im Kalender selbst wird der Geburtstag immer korrekt am jeweiligen Tag angezeigt!

Kurzfristige Abhilfe bis zu einer Lösung: im entsprechenden Template (Kalender Templates -> calendar_dayview_birthdays) die Anzeige des Geburtsdatums ($lang->birthdays_on_day) auskommentieren. So werden wenigstens keine falschen Daten angezeigt.

Anders als bei olby, sind bei mir alle Geburtsdaten im Profil des Users korrekt, die Jahreszahl und auch das deutsche Datumsformat wird angezeigt.


MyBB-Version: 1.01 (100.08 - incl. aller Updates - auch die im o.a. Link beschriebenen Bugs)

PHP-Version: 4.3.3 | MySQL-Version: 3.23.39

Gerade ist mir dazu was aufgefallen:

Gibt´s da evtl. einen Zusammenhang mit der Sommerzeit? Den Daten nach könnte es sein.

Das habe ich auch schon gedacht...Habe den Fehler auf jeden Fall gemeldet. Wink
Vielleicht sollte man in der calendar.php aus der Zeile
Code:
$bdaydate = mydate($mybb->settings['dateformat'], $eventdate);
eine Zeile
Code:
$bdaydate = mydate($mybb->settings['dateformat'], $eventdate, "-");
machen und mydate in der inc/functions.php so umschreiben, das wenn $offset=="-" ist date anstatt gmdate genutzt wird. Ich würde sagen das ist auf jedenfall nen Sommerzeitproblem. Geburtstage die in der Winterzeit liegen weil GMT+1 eingestellt ist werden richtig angezeigt. Geburtstage in der Sommerzeit GMT+2 werden als Tag davor mit der Uhrzeit 23:00 angezeigt.
Ich denk des is ein Problem von mydate.
Vorschlag:

In der inc/functions.php
PHP-Code:
function mydate($format$stamp$offset=""$ty=1
suchen und ändern:
PHP-Code:
$date gmdate($format$stamp + ($offset 3600)); 
und
PHP-Code:
$todaysdate gmdate($format$stamp + ($offset 3600));
$yesterdaysdate gmdate($format, ($stamp 86400) + ($offset 3600)); 

zu:
PHP-Code:
$date date($format$stamp + ($offset 3600)); 
und
PHP-Code:
$todaysdate date($format$stamp + ($offset 3600));
$yesterdaysdate date($format, ($stamp 86400) + ($offset 3600)); 

An Michael oder andere PHP-Cracks:
Kann das nochmal jemand überprüfen aber es funktioniert, da der Timestamp ja von den Settings schon vorgegeben wird und gmdate nochmal +1 hinzufügt, da meine Systemzeit ja auch auf +1 steht(?)
Ich kann es jetzt auf die Schnelle nicht überprüfen. In der Entwicklerversion wird immer noch gmdate verwenden, was ich auch logisch finde. Die im Admin-CP eingegebene GMT-Zeit-Differenz, also hier +1, wird ja auf die GMT-Zeit aufgerechnet. Die wird eben durch die Funktion gmdate ausgegeben, die Funktion date gibt die aktuelle Ortszeit aus.
Ich hab uinter http://de3.php.net/manual/de/function.gmdate.php folgendes gefunden:
Zitat:Entspricht der date() Funktion, außer dass als Zeitangabe immer Greenwich Mean Time (GMT) zurück gegeben wird. Steht ihr System in Deutschland (GMT + 01:00), wird im Beispiel unten (1. Zeile) "Jan 01 1998 00:00:00" ausgegeben, wogegen die 2. Zeile "Dec 31 1997 23:00:00" zurück gibt.

Beispiel gmdate()
<?php
echo date("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
echo gmdate("M d Y H:i:s", mktime(0, 0, 0, 1, 1, 1998));
?>

Des heißt wenn ich ein Event am 25.03.2006 eingetragen hab dann wird das ja mit der Uhrzeit 00:00 Uhr ausgegeben, da ich ja nur ein Datum ohne Uhrzeit auslese. gmdate gibt mir dann aber 24.03.2006 23:00 Uhr zurück und somit ist das Event plötzlich an einem Tag früher...:question:
Seiten: 1 2