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

Beitrag lesen

Hallo Christian,

(Liegt daran, dass ein Zugriff über den Array-Schlüssel viel häufiger schneller ist als den Array durchzugehen bis der erste Wert passt - wobei bei 7 Einträgen der Unterschied vmtl. minimal ist.)

Ja, werde ich so machen.

Soweit ich das auf den ersten Blick sehen kann, ja. Allerdings möchte ich Dich auf eines aufmerksam machen: Wenn Du den Code jetzt schreibst, weißt Du vielleicht noch, was für Limitationen der hat - aber wenn Du sagen wir in 1 Jahr nochmal ne Wochentagsfunktion brauchst, dann riskierst Du, die Funktion einfach zu kopieren ohne darüber nachzudenken und dann fliegt sie Dir irgendwo anders um die Ohren. [...]

Wobei man ja deshalb seinen Code kommentieren sollte.

// Gibt nur gültige Werte von 1990 bis 2100
und schon wüsste man Bescheid.

Zudem: Meine korrektere Funktion mit größerem Wertebereich wäre hier sowieso schneller. ;-)

Ähhmm... Hast du mit der Hand gestoppt? ;)

Im Vergleich meines Wochentag-Codes und deiner Funktion:wochentag ($jahr, $monat, $tag, $g = true) mit (int)-Berechnung ist das erstere schneller.
Ich nehme an du hast im Vergleich nicht die gleichen Bedingungen gehabt. Meine Funktin hat's mit $month = 'Sep'; gemacht und deine mit $month = 9; (tippe ich jetzt mal).

Aber ernsthaft, wenn's Logfiles sind: Normalerweise steht doch bei Logfiles das Zeitzonenoffset mit dabei? Bei Apache-Logs in der Default-Config z.B. so: "[02/Oct/2007:19:43:24 +0200]" - das "+0200" ist ja das Offset zu GMT in der Form +HHMM (oder -HHMM). In dem Fall wäre die lokale Zeitzone anzunehmen sowieso falsch, um einen korrekten Timestamp zu erhalten müsstest Du sowieso gmmktime() auf den ersten Teil anwenden und dann das Offset in Sekunden auf den Timestamp addieren (oder subtrahieren, wenn's negativ ist).

Gute Idee. Wobei es ja nur um die Datumsanzeige geht und somit werde ich nur auf die gm-Funktinoen zurückgreifen (vor allem beim Anzeigen wird's schneller gehn...).

Gruß,
Dodwin

--
Dodwin