Ankündigung

Einklappen
Keine Ankündigung bisher.

Zeitraum herausfinden und abfragen

Einklappen

Neue Werbung 2019

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

  • Zeitraum herausfinden und abfragen

    Hallo,

    derzeit arbeite ich an einer Seite, wo man sich Inaktiv melden kann.
    Dort muss man 2x ein Datum angegeben (von bis) dies im Format DD.MM.YYYY, dies wird als Klartext in der Datenbank abgespeichert. Nun möchte ich allerdings abfragen, ob der Tag bzw. der Zeitraum ist, um so anzuzeigen das der User InAktiv ist. Z.B. ich habe mich im Zeitraum vom 08.08.2014 bis zum 10.08.2014 InAktiv gemeldet und es ist nun der 09.08.2014, so soll auf einer Seite angezeigt werde, dass ich InAktiv bin. Ist aber der 11.08.2014 oder der 07.08.2014 so soll dort stehen ich sei nicht InAktiv. Nun weiß ich aber nicht wie ich dies abfragen soll

    Ich hoffe ihr könnt mir helfen.

    Grüße elyday


  • #2
    1.) Das hört sich nichtmal ansatzweise Fortgeschritten an.
    2.) Stehen die Daten in einer MySQL-Datenbank? Falls ja, wie wäre es mit nem WHERE CURDATE() BETWEEN von AND bis ?

    edit: Ich seh grade, deine Datumsformate sind kein MySQL-Standard. Da musst du dann noch bisschen rumkonvertieren.

    Kommentar


    • #3
      Fortgeschritten?!

      Speicher das Datum als DATE in der Datenbank, damit lässt sich dann arbeiten.
      Zitat von nikosch
      Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

      Kommentar


      • #4
        Eine Möglichkeit wäre, das Datum als timestamp in der Datenbank zu speichern, dann kannst du mit time() > $timestamp drauf prüfen und für die Ausgabe date() nutzen.

        Andere Möglichkeit wäre strtotime.

        Variante 1 halte ich persönlich für besser.

        Kommentar


        • #5
          Okay, habe nun mktime genommen, nun ist das Problem das folgende:
          Ich möchte, dass die User weiterhin das Datum in DD.MM.YYYY angegeben können, mktime ist aber so: Hour, Minute, Secon, Month, Day, Year ; Sprich, Month und Day sind vertauscht. Wie kann ich dies nun so machen, dass man weiterhin das Datum in DD.MM.YYYY angeben kann und nicht in MM.DD.YYYY

          Kommentar


          • #6
            Am besten arbeitest du mit richtigen Date(Time)-Objekten in PHP: http://at1.php.net/manual/de/datetim...fromformat.php

            Kommentar


            • #7
              Habe es nach Thor's 1. Variante versucht. Funktioniert nicht.
              PHP-Code:
              if ($a['inaktiv'] > 0) {
                  if(
              $time $a['from'] || $time $a['to']) {

                  } else {
                      echo 
              'Ich bin vom '.date('d.m.Y'$a['from']).' bis zum '.date('d.m.Y'$a['to']).' Inaktiv gemeldet.<br><br>';
                  }

              Habe es mit verschiedenen Zeitzonen probiert (wo schon der 09.08.2014 ist).

              Kommentar


              • #8
                Gut. Jetzt hast du festgestellt, dass MySQL Timestamps keine UNIX Timestamps sind. Wie wäre es wenn du:
                a. den Inhalt der Variablen ausgibst um Fehler selbst zu finden
                und b. anfängst das Handbuch aufzumachen.

                Kommentar


                • #9
                  Tropi, ich habe es nun ohne eure Hilfe hinbekommen.
                  Mein einziger Dank geht an Thor

                  Kommentar


                  • #10
                    Jop und wenn du das nächste mal Probleme mit unix-timestamps in der Datenbank bekommst wirst du (hoffentlich) feststellen, dass sich mit DATE und DATETIME auf Datenbankebene tausendmal einfacher arbeiten lässt. Bis dahin: Viel glück mit deiner aktuellen Lösung.
                    Zitat von nikosch
                    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

                    Kommentar


                    • #11
                      Wenn du nicht in der Lage bist aus den restlichen Beiträgen die relevante Information zu beziehen, dann bist du ohnehin falsch hier und vermutlich beim Programmieren generell.

                      "Ohne Hilfe", "Fortgeschritten" & Co. kommentier ich erst gar nicht...

                      Kommentar


                      • #12
                        Zitat von tkausl Beitrag anzeigen
                        Fortgeschritten?!

                        Speicher das Datum als DATE in der Datenbank, damit lässt sich dann arbeiten.
                        Oder noch besser: DATERANGE. In Datenbanken, die das können.
                        PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services

                        Kommentar

                        Lädt...
                        X