Ankündigung

Einklappen
Keine Ankündigung bisher.

Datenbank wert in Datum umwandeln

Einklappen

Neue Werbung 2019

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

  • Datenbank wert in Datum umwandeln

    Ich möchte zwei Daten mit einander vergleichen das jetzige und eines aus der Datenbank. In der Datenback speicher ich es so: "05.02.2015 - 22:17:16", aber wie vergleiche ich das mit dem jetzigen?

    mfg,
    xWhiteFeel


  • #2
    Zitat von xWhiteFeel Beitrag anzeigen
    Ich möchte zwei Daten mit einander vergleichen das jetzige und eines aus der Datenbank. In der Datenback speicher ich es so: "05.02.2015 - 22:17:16", aber wie vergleiche ich das mit dem jetzigen?
    Garnicht. Speicher das Datum in der Datenbank im DATETIME-Format, dann kannst du mit Datumsfunktionen arbeiten.

    Kommentar


    • #3
      wie muss ich das dann einschreiben?

      Kommentar


      • #4
        Zitat von xWhiteFeel Beitrag anzeigen
        wie muss ich das dann einschreiben?
        Du meinst in welchem Format das Datum in die Datenbank geschrieben werden muss? Das steht in der Doku (falls du nicht MySQL verwendest schreib das bitte, aber bei anderen Datenbanken gibt es ähnliche Typen um ein Datum mit Zeit zu speichern).

        Kommentar


        • #5
          Vergleich deinen Wert aus der DB mit
          PHP-Code:
          $datum_akt date("d-m-Y - H:i:s"); 

          Kommentar


          • #6
            Zitat von HeinrichK Beitrag anzeigen
            Vergleich deinen Wert aus der DB mit
            PHP-Code:
            $datum_akt date("d-m-Y - H:i:s"); 
            Nein! Es ist Unsinn was rumzubasteln um das defekte Datenbankdesign nicht reparieren zu müssen und wenn es nicht um Datumsgleichheit geht ist diese "Lösung" ohnehin zum Scheitern verurteilt - ganz davon zu schweigen dass in $datum_akt niemals das gleiche stehen wird wie in der Datenbank ...

            Kommentar


            • #7
              @tk1234

              mir ging es nicht darum, welches Format er in der DB abspeichert. Das ist sicher nicht ideal.

              Aber mit diesem "$datum_akt" kann er sicher seinen Wert aus der DB vergleichen, weil es das gleiche Format hat.

              <=== beim Schreiben denken ===>

              Ja, du hast Recht, das ginge nur, wenn es gleich ist - kann es aber logischerweise nicht sein. Also hilft nur DATETIME in der DB.

              Kommentar


              • #8
                Zitat von HeinrichK Beitrag anzeigen
                Aber mit diesem "$datum_akt" kann er sicher seinen Wert aus der DB vergleichen, weil es das gleiche Format hat.
                Nein, hat es nicht - du verwendest Striche als Trenner im Datum er Punkte

                Kommentar


                • #9
                  @tk1234

                  okay spät am Tag - du hast Recht - war zu schnell dahin geschrieben...

                  Kommentar


                  • #10
                    Ich habe in der Doku geschaut aber immer kommt das raus: "0000-00-00 00:00:00" Format: "d.m.Y - H:i:s" wie mache ich das?

                    Kommentar


                    • #11
                      PHP-Code:
                      $now = new DateTime('now');
                      echo 
                      $now->format("Y-m-d H:i:s"); 
                      bzw in deinem Fall:

                      PHP-Code:
                      $now = new DateTime('now');
                      echo 
                      $now->format("d.m.Y - H:i:s"); 
                      - Laravel

                      Kommentar


                      • #12
                        Oder so wenn man keine Date Klasse hat
                        PHP-Code:
                        $now date("d.m.Y - H:i:s"strtotime($row->dateFromDb));
                        echo 
                        $now

                        Kommentar


                        • #13
                          Ich habe in der Doku geschaut aber immer kommt das raus: "0000-00-00 00:00:00" Format: "d.m.Y - H:i:s" wie mache ich das?
                          1. Ja, so sieht das Format von DATETIME aus -> 0000-00-00 00:00:00
                          2. Ha?

                          Zurück zum Ausgang.. Übrigens...

                          Ich möchte zwei Daten mit einander vergleichen das jetzige und eines aus der Datenbank.
                          Das kannst du auch direkt in SQL machen:

                          - DATE() ist heute
                          - NOW() ist jetzt (Datum und Uhrzeit)
                          - Du kannst zwei DB-DATETIME direkt vergelichen = , > , < etc..
                          - Du kannst auch mit BETWEEN arbeiten Irgendwas zwischen A und B
                          - etc... siehe den Doku

                          zB für alle Einträge die in der Zukunft sind:

                          Code:
                          SELECT ... FROM `events` WHERE `event_date` > DATE()
                          Würde dir auf jeden Fall dazu raten dein falsches DatumsZeit-Format richtig zu stellen. Sollte das nicht mehr möglich sein, kannst du ja ev. noch als Trostpflaster mit STR_TO_DATE() arbeiten: http://dev.mysql.com/doc/refman/5.5/...on_str-to-date

                          Sonst noch - in PHP kannst du zB so machen:
                          PHP-Code:
                          echo date_create(null, new DateTimeZone('Europe/Berlin'))->format('Y-m-d H:i:s');
                          // 2015-01-23 16:21:01 
                          LG
                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Zitat von xyba Beitrag anzeigen
                            Oder so wenn man keine Date Klasse hat […]
                            Warum sollte man keine DateTime-Klasse haben?

                            Kommentar

                            Lädt...
                            X