24 stunden abfrage

Grunge

Erfahrenes Mitglied
Hey Leute,

hab mal kurz ne Frage

Ich habe eine Tabelle in der eine IP gespeichert wird und Datum und Zeit in einer Spalte. Nun will ich eine abfrage machen, ob diese IP eintragung länger als 24 Stunden her ist. Wie mach ich das am besten?
 
Du brauchst das Datum Zeit ja eigentlich blos in einen Timestamp umwandeln und dann überprüfen ob bereits 24h (86400sec) vergangen sind

mfg Spikaner
 
Hallo!

Noch besser währe es allerdings gleich den Timestamp zu speichern..... und nicht das Datum/die Uhrzeit.
Zum einen lässt sich mit einem Timestamp einfacher rechnen und zum anderen ist man viel flexibler.

Gruss Dr Dau
 
hab ich doch schon gesagt: momentan speicher ich sie als "datetime" via mysql. Würde mich auf eine Alternative einlassen. Muss nur wissen welche, und wie diese t
 
Wie bereits richtig geschrieben wurde, ist es besser (ressourcensparender und einfacher) deine Datenstruktur ein wenig zu verändern. Die nötigen Bausteine sehen dazu folgendermaßen aus:

- time()
- nur eine int Spalte in deiner Tabelle anstelle von Datum und Zeit

in der Abfrage ob die IP schon älter als 1Tag ist, prüfst du dann einfach nur noch ob aktuelle Zeit (also time()) > zeit aus der Datenbank+24h then true else false
fertig ;)

Wenn du deine Datenstruktur nicht ändern möchtest, musst du auf jeden Fall aus den Strings Datum und Zeit eine int-Zahl machen. Das geht auch, ist jedoch aufwendig. Dazu findest du bereits einige Einträge hier im Forum ;) z.B. hat sich mal jemand (soweit ich mich erinnern kann) die Mühe gemacht eine kleine Funktion mit einem regulären Ausdruck zu schreiben. Die Funktion hieß date_to_timestamp oder so ähnlich...

Achso und wenn du den Timestamp wieder in Datum und Zeit umrechnen möchtest, gibt es dafür schon eine fertige Funktion in PHP. Sie nennt sich date()

EDIT: Wie Dr Dau übrigens sehr richtig geschrieben hat. Um die zwei Strings in Ints umzuwandeln muss man wissen, um welche Formatierung es sich bei den Zeit-Strings handelt. z.B. könnte dort ja stehen 10.01.70 oder aber 10.01.1970 oder aber 10 Januray 1970 usw. daher können wir dir da nicht wirklich weiter helfen. Aber wie bereits geschrieben gibt es dazu auch schon jede Menge andere Threads ;)
Schaue einfach mal im PHP Bereich (wo dieser Thread übrigens auch hingehören würde)
 
Zuletzt bearbeitet:
also muss ich einfach abfragen, ob der time() den ich einst in die tabelle iengetragen hatte größer gleich einem aktuellen time wert PLUS 86400 ist?
 

Neue Beiträge

Zurück