Datum aus Datenbank mit heute vergeleichen, klappt nicht korrekt
Matze
- datenbank
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
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?
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
Hi
Wenn man Strings vergleicht sollte man in der Tat YYYYMMTT als Datumsformat benutzen. Tut Matze allerdings nicht.
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.