PHP-Problem

E

Ecki

Guest
Hallo zusammen, ich habe ein Problem mit PHP.
Also es geht darum das in einer Datenbank in den Datensätzen Datumsangaben stehen, jetzt möchte ich nur Datensätze anzeigenlassen die das aktuelle Datum bzw. Datumsangaben die in der Zukunft liegen.
Das Format des Datums steht als "varchar" in der Datenbank und sieht so aus Bsp.: "01.01.2005". zuerst wollte ich die Sache über den select-Befehl machen aber es ging nicht dann habe ich es mit "if ($datum >= $zeit) {}"
wobei "$datum das Datenbankdatum und $zeit = date("d-m-Y"); ist.
Leider vergleicht das Programm nur den Tag und nicht auch den Monat und das Jahr. Bsp.: Heute ist der 03.02.2005 er sucht alle Datensätze raus die im Tag gleich dem 03. oder größer sind, wenn also das Datum 06.01.2005 steht sucht es das Programm mit raus obwohl es im Monat in der Vergangenheit liegt.
Könnt Ihr mir da helfen?

Danke im vorraus!!!

Ecki
 
ist eine kleine logik aufgabe

las mal die punkte weg und sagt mir welche Zahl größer ist

01.01.2005
31.01.1988

du hast es einach im falchen Format gespeichert...
wenn Du es so speichern willst dann dreh das datum um
also
JAHR MONAT TAG

dann kannst Du es auch vergleichen, oder benutze Timestamp oder Date Werte !!!
 
Hi,

Also ich muss Metaman in dieser Sache natürlich völlig zustimmen ;-) Hab' hier 'ne Lösung für dein Problem, Ecki:
Speichere anstatt einem formatierten Datum einfach einen Timestamp in die Datenbank. Den kriegst du mit $datum = mktime(Stunde, Minute, Sekunde, Monat, Tag, Jahr, Sommerzeit). Also z.B "$datum = (20, 45, 0, 2, 5, 2005)" für die (für mich) jetzige Zeit.
Wenn du einfach die aktuelle Zeit als Timestamp brauchst, dann verwende "$zeit = time()".
Jetzt kannst du bequem überprüfen, welches der beiden Daten grösser ist, in dem du eben
"if ($datum >= $zeit) {}" anwendest.

Greats,

S.B
 
Danke für die ausführungen, ich habe die Datenbankformatierung auf Date gesetzt.
Das Problem habe ich gelöst, aber ich habe keine Funktion gefunden die das Format TT.MM.JJJJ
was ja in Deutschland nun mal gerne genommen wird in einen Timestamp umwandelt um dann diesen wiederum in das Dateformat YYYY-mm-dd zu wandeln.
Wenn also in die Datenbank mittel's Formular ein Datum eingegeben werden soll wollte ich das es im TT.MM.JJJJ-Format passiert nur wie ?

Ecki
 
Zurück
Oben