Matze: Datum aus Datenbank mit heute vergeleichen, klappt nicht korrekt

Ich werde noch Wahnsinning,
ich möchte einfach nur zwei Daten (Datum's)  miteinander vergleichen. Ein Datum kommt aus meiner mysqlDatenbank das ich so auslese:

DATE_FORMAT( date_add( datum, INTERVAL '30' DAY ) , '%d.%m.%Y' ) AS Korrektes Datum

und 30 Tage dazueditiere. Das zweite Datum ist das Datum von heute:

if ( date ( $Daten->Korrektes Datum ) < date ( "d.m.Y" ) )

es klappt überall, doch bei folgenden Daten
03.10.2011 < 02.11.2011
02.10.2011 < 01.11.2011
sagt er OK.

Ich glaube das es irgendwie am Format liegt. Kann es sein, das ich die beiden Daten irgendwie noch in ein gemeinsameres Format bringen muss.

Matze

  1. Hi!

    Was genau fragst Du?

    03.10.2011 < 02.11.2011
    02.10.2011 < 01.11.2011

    Beide Ausdruecke sind true. Was erwartest Du? Steh ich irgendwie auf der Leitung?

    --
    Signaturen sind blöd!
  2. Hallo Matze,

    Ich glaube das es irgendwie am Format liegt. Kann es sein, das ich die beiden Daten irgendwie noch in ein gemeinsameres Format bringen muss.

    Ja, dreh die Reihenfolge von Tag, Monat und Jahr einfach um.

    Gruß,
    Tobias

    1. Hi

      Wenn man Strings vergleicht sollte man in der Tat YYYYMMTT als Datumsformat benutzen. Tut Matze allerdings nicht.

      --
      Signaturen sind blöd!
  3. Tach!

    if ( date ( $Daten->Korrektes Datum ) < date ( "d.m.Y" ) )

    date() erwartet als ersten Parameter einen Format-String. Du übergibst aber der ersten date()-Funktion ein formatiertes Datum. Das kann nur zufällig was richtiges ergeben.

    03.10.2011 < 02.11.2011
    02.10.2011 < 01.11.2011

    Wie kommst du zu den Werten, die du hier aufgeführt hast? Sind das die Werte, von denen du annimmst, sie zu vergleichen oder sind das die Ergebnisse der beiden date()-Aufrufe?

    Ich glaube das es irgendwie am Format liegt. Kann es sein, das ich die beiden Daten irgendwie noch in ein gemeinsameres Format bringen muss.

    Um Datumswerte zu vergleichen, die als String vorliegen, muss man die Reihenfolge Jahr-Monat-Tag verwenden. Ansonsten ist der 3.1. größer als der 1.3.

    dedlfix.