Sönke Tesch: Datums vergleich mit date()

Beitrag lesen

(1-6-2003 = 162003)
wie stell ich jetzt den Vergleich mit dem aktuellen Datum her?

So gehts nicht z.B. if( ( $tag.$monat.date("Y")) > date("dnY") ){ ...( 162003 > 2352003 ) ne!

Wenn Du es so machen möchtest, dann solltest Du die Regeln unseres Zahlensystems beachten und mit dem höchstwertigsten Teil links beginnen. Bei "normalen" Zahlen stehen links immer die größten Stellen, dann folgen die kleineren: z.B. Tausender, Hunderter, Zehner, Einer. Beim Datum läuft es ähnlich: Erst das Jahr, gefolgt vom Monat und schlußendlich dem Tag. Deine Zahl muß also 20030601 lauten, nicht 162003. Beachte auch die _zwei_stelligen Monats- und Tagesstellen!

Alternativ kannst Du auch die Funktion mktime() verwenden, die Dir das Datum in eine Sekundenzahl ab Neujahr, 1.1.1970, umwandelt ("Unix timestamp"). Dieses Format wird auch von einer Reihe anderen Funktionen benutzt und lässt sich relativ leicht in Berechnungen nutzen.
Beachte jedoch unbedingt, daß diese Unixzeit Weltzeit/GMT/UTC ist, nicht die hierzulande gebräuchliche mitteleuropäische Zeit! Du wärest nicht der erste, der sich wundert, warum zweimal im Jahr die Rechnungen nicht stimmen - wegen der Sommerzeit gibt es einen Tag im Jahr mit 23 Stunden und einen mit 25; insbesondere die gern genutzte Gleichung "plus 24 Stunden = plus 1 Tag" funktioniert nicht unbedingt.
Im Falle von mktime() ist es deshalb sinnvoll, als Uhrzeit 12 Uhr anzugeben statt 0 Uhr.

Gruß,
  soenk.e