Dodwin: Datums- und Zeitberechnung mit PHP, Schaltjahre, Zeitzonen

Beitrag lesen

Hallo Christian,

Erst mal vielen Dank für diese ausführlichen Informationen.

Ein
$weekday = idate ('w', mktime (0, 0, 0, $monats_nummer, $tag, $jahr));
wäre schonmal effizienter. [...]

Nur bedingt leider, da mir der Monat als String (z.B. Sep) vorliegt. Ich muss also erst die Monatszahl für mktime herausfinden...

Leider ist Deine nachgebaute Funktion zum einen falsch und zum anderen nicht die effizienteste Implementierung selbst innerhalb des Wertebereichs, den Deine Funktion akzeptiert.

[...]Da das Jahr 2000 gerade in die 400-Jahre-Regelung fällt, stimmt Deine Funktion da zufälligerweise wieder, im Jahr 2100 stimmt sie dagegen nicht mehr.

Die Funktion soll nur Werte von 1990 bis ca. 2020 (wenn überhaupt...) verarbeiten.

Für diesen Zeitraum gibt die Funktion einen korrekten Wert aus (was nach 2100 ist interessiert mich doch nun wirklich nicht ;) )?

Zudem: Warum schränkst Du den Wertebereich der Funktion künstlich ein? Für Daten von vor 1990 liefert sie schlichtweg ein falsches Ergebnis, ohne es abzufangen und einen Fehler zurückzugeben.

Die Daten die ich erhalte sind Log-Daten. Es wird vorher überprüft ob fehlerhafte Einträge vorhanden sind (leere Zeilen, etc.). Bei der Wochentags-Funktion dürften keine Fehler ankommen. (jaja soweit die Theorie...)

PHP macht das aber bereits für Dich, Du brauchst Dich nicht darum kümmern. Deswegen ist gmdate() / gmmktime() so viel schneller als date() / strtotime() - PHP muss bei GMT nicht schauen, welche Zeitzone / Sommer+Winterzeit da gilt oder nicht, GMT hat sowas per Definition nicht.

Oh sehr schön, soweit hatte ich nicht gedacht. Die Funktionen sind wirklich nur minimal langsamer als "selbstgebastelte". Ich werde diese benutzen.

Gruß,
Dodwin

--
Dodwin