ich habe folgendes problem:
In einer mysql datenbank will ich daten speichern die ein datum haben.
wenn das datum abgelaufen ist (später wie heute) wird dieser datensatz gelöscht!
aber wie kann ich datums miteinander vergleichen. inerhalb von mysql ist das ja kein problem aber wie kann man datums angaben wie z.b. 2005-12-24
in PHP vergleichen
danke mollitz
Ankündigung
Einklappen
Keine Ankündigung bisher.
wie kann man datums vergleichen
Einklappen
Neue Werbung 2019
Einklappen
X
-
wie kann man datums vergleichen
Stichworte: -
-
ok......
ist ja eigetnlich voll leicht =)
DANKE!!!!!
is echt cool dass ich euch checker immer fragen kann
-
Zitat von RicochetAbgesehen von 'human readable' sehe ich keinen Grund ein Mysql Datumsformat zu benutzen.
Vernüntiger ist ja wohl, eines der MySQL-Datumsformate zu benutzen, und wenn dann unbedingt ein Timestamp benötigt wird,
diesen mit der entsprechenden Funktion aus der DB zu holen.
Für das anfangs erwähnte Problem ist das aber gar nicht nötig, da MySQL ja die Funktionen NOW() oder CURDATE() kennt. Also z.B.Code:DELETE FROM tabelle WHERE datum < CURDATE();
Einen Kommentar schreiben:
-
gut dass heisst wenn ich jetzt einfach einen timestamp hab der halt ganz viele sekunde symbolisiert die von der unix-anfangs-epoche vergangen sind mit den sekunden für heute vergleiche und wenn der timestamp dann kleiner ist dann wird der datensatz gelöscht
ok ich versuchs mal =)
danke
Einen Kommentar schreiben:
-
Zitat von RicochetAber nur weil php so nett ist und versucht strings im zusammenhang mit operatoren als zahlen zu interpretieren.
Und das ist alles andere als 'sauber'.
Einen Kommentar schreiben:
-
Zitat von xabbuhFür Geburtsdaten würde man aber eh eine DATE-Spalte nehmen, da die Uhrzeit normalerweise völlig uninteressant ist.
Einen Kommentar schreiben:
-
Ein Argument für die Verwendung von DATETIME ist zum Beispiel, dass du wesentlich größere Datumsbereiche abdecken kannst.
Ein anderer Grund, DATETIME zu benutzen, ist, dass die Verarbeitung einer DATETIME-Spalte mit den Datumsfunktionen von MySQL wesentlich einfacher ist als bei der Verwendung von UNIX-Timestamps.
Bei Daten, bei denen es eh nur auf das Datum oder nur die Zeit ankommt, ist ein UNIX-Timestamp eh Unsinn. Hierfür gibt es DATE, TIME oder YEAR (je nachdem, was gespeichert werden soll).
Zitat von DiBo33Ich schon, allein aus dem Grund da es immer noch Leute gibt, welche vor 1970 geboren wurden.
Einen Kommentar schreiben:
-
Zitat von RicochetAbgesehen von 'human readable' sehe ich keinen Grund ein Mysql Datumsformat zu benutzen.
Einen Kommentar schreiben:
-
Aber nur weil php so nett ist und versucht strings im zusammenhang mit operatoren als zahlen zu interpretieren.
Und das ist alles andere als 'sauber'.
Abgesehen von 'human readable' sehe ich keinen Grund ein Mysql Datumsformat zu benutzen.
Einen Kommentar schreiben:
-
Allerdings kannst du ein Datum des MySQL-DATE-Formats (YYYY-MM-DD) in PHP auch vergleichen.
Einen Kommentar schreiben:
-
Und mit diesen Vergleichsoperatoren kannst du dann die verschiedenen Daten vergleichen.
http://tut.php-q.net/vergleich.html
Einen Kommentar schreiben:
-
Das Date-Format ist leiter kein Timestamp.
Timestamps sind die Anzahl der sekunden die Seit dem 1.1.1970 vergangen sind.
Das ist aber eher Nebensache. Und im gegensatz zu DATE lassen sich timestamps viel einfacher vergleichen. Da es einfach nur eine Zahl ist.
Du Speicherst also einen timestamp in der DB:
INSERT INTO table SET
user = 'Neuer Benutzer',
timestamp = UNIX_TIMESTAMP(); (Aktueller Zeitpunkt)
Später kannst du damit machen was du willst, rechnen, in ein Datumsformat umwandeln und so weiter. Zb könntest du dir erstmal ausgeben lassen wann sich der letzte Benutzer registriert hat.
list($letzte_registrierung) = mysql_fetch_row(mysql_query("SELECT timestamp FROM table ORDER BY timestamp DESC LIMIT 1"));
Jetzt nur noch umwandeln in ein vernünftiges Datum
echo date("m, j H:i:s", $letzte_registrierung);
Einen Kommentar schreiben:
-
hab ich gespeichert
also in der datenbank hab ichs glaub schon als timestamp gespeichert
ich hab die datenbank mit PHPmyAdmin gemacht. ja und da hab ich halt date angegeben
is des richtig??
und dann kann ich in php des einfach in variablen speichern und dann vergleichen?????
dnake mollitz
Einen Kommentar schreiben:
-
Speicher deine Datensätze am besten gleich als timestamp in der datenbank ab. Dann hast du später überhaupt keine probleme mehr mit vergleichen, berechnen usw.
Einen Kommentar schreiben:
-
In PHP lassen sich Daten am besten in UNIX-Timestamps vergleichen. Ein Datum im oben angesprochenen Format kannst du in PHP mit strtotime() bzw. in MySQL mit UNIX_TIMESTAMP() in einen UNIX-Zeitstempel umwandeln. Allerdings ist die Frage warum du diese Einschränkung unbedingt mit PHP vornehmen willst und nicht in der Abfrage.
Einen Kommentar schreiben:
Einen Kommentar schreiben: