Ankündigung

Einklappen
Keine Ankündigung bisher.

wie kann man datums vergleichen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • mollitz
    hat ein Thema erstellt wie kann man datums vergleichen.

    wie kann man datums vergleichen

    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

  • mollitz
    antwortet
    ok......
    ist ja eigetnlich voll leicht =)
    DANKE!!!!!
    is echt cool dass ich euch checker immer fragen kann

    Einen Kommentar schreiben:


  • lazydog
    antwortet
    Zitat von Ricochet
    Abgesehen von 'human readable' sehe ich keinen Grund ein Mysql Datumsformat zu benutzen.
    Und, dass dir dann alle Datums- und Zeitfunktionen von MySQL nicht zur Verfügung stehen.
    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:


  • mollitz
    antwortet
    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:


  • Zergling-new
    antwortet
    Zitat von Ricochet
    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'.
    Sehe ich eigentlich nicht so. Zumindest finde ich Stringvergleiche mit < > Operatoren nicht unsauber.

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    Zitat von xabbuh
    Für Geburtsdaten würde man aber eh eine DATE-Spalte nehmen, da die Uhrzeit normalerweise völlig uninteressant ist.
    Normalerweise schon, es sei denn du hast eine Horoskop-Datenbank

    Einen Kommentar schreiben:


  • xabbuh
    antwortet
    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 DiBo33
    Ich schon, allein aus dem Grund da es immer noch Leute gibt, welche vor 1970 geboren wurden.
    Für Geburtsdaten würde man aber eh eine DATE-Spalte nehmen, da die Uhrzeit normalerweise völlig uninteressant ist.

    Einen Kommentar schreiben:


  • DiBo33
    antwortet
    Zitat von Ricochet
    Abgesehen von 'human readable' sehe ich keinen Grund ein Mysql Datumsformat zu benutzen.
    Ich schon, allein aus dem Grund da es immer noch Leute gibt, welche vor 1970 geboren wurden.

    Einen Kommentar schreiben:


  • Ricochet
    antwortet
    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:


  • Zergling-new
    antwortet
    Allerdings kannst du ein Datum des MySQL-DATE-Formats (YYYY-MM-DD) in PHP auch vergleichen.

    Einen Kommentar schreiben:


  • duderino
    antwortet
    Und mit diesen Vergleichsoperatoren kannst du dann die verschiedenen Daten vergleichen.

    http://tut.php-q.net/vergleich.html

    Einen Kommentar schreiben:


  • Ricochet
    antwortet
    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:


  • mollitz
    antwortet
    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:


  • duderino
    antwortet
    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:


  • xabbuh
    antwortet
    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:

Lädt...
X