if (Datum vor heutigem Datum)

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

  • if (Datum vor heutigem Datum)

    Hallo!

    Ich lese aus einer Datenbank-Tabelle Datensätze aus die mit einem Datum versehen sind.

    Somit hab ich schonmal die Varibale $Datum

    Alles schön und gut.

    Jetzt möchte ich eine weitere (andere) Abfrage machen wenn dieses Datum vor dem heutigen Datum liegt.

    Also

    if ($Datum < ??heute??)
    {
    tu was....
    }

    weiß jemand was ich anstatt der Fragezeichen einsetzen muss damit es funktioniert?

    Das wäre super

    Danke
    Greeez

  • #2
    ich weiß nicht, was $Datum speichert. Nehmen wir an, es ist ein timestamp:

    Dann ersetzt die Fragezeichen durch

    time()

    Diese Funktion ermittelt die Sekunden ab einem Datum in derVergangenheit (1.Jan 1970)

    Kommentar


    • #3
      achso sorry. das $Datum gibt aus:

      2005-02-01

      geht das dann dennoch mit time()?

      also

      if ($Datum < time())
      {
      bla bla
      }

      das wäre super dann probier ich aus :-)

      danke

      Kommentar


      • #4
        Nein, wie schon gesagt gibt time die anzahl der sekunden seit 1970... dummerweise kann man das dann schlecht mit deinem timestamp vergleichen.

        Am besten du speicherst in der db direkt einen Timestamp im UNIX format (das was time() zurrückgibt) oder du machst dich mit den stringfunktionen und den datumsfunktionen von php vertraut!
        Die Musikreview Seite

        hi, i'm a signature virus. copy me into your signature to help me spread.

        Kommentar


        • #5
          hm. die db kann ich nimmer ändern leider.

          ich habs mit datumsfunktionen schomal probiert z.b. getdate

          und dann

          $heute = getdate();

          $now = "$heute[year] . $heute[mon] . $heute[mday] "



          etc.

          und dann

          if ($Datum < $now)

          aber das funzt leider auch net :-(

          Kommentar


          • #6
            in welchem Format liegt das Datum den vor?


            z.b. 15-01-2005

            umwandeln in Timstamp
            PHP-Code:

            $DATE
            =explode("-",$DATUM);
            $TIMSTAMPDATUM=mktime(0,0,0,$DATE[1],$DATE[0],$DATE[2]);
            $HEUTE=date("j.m.Y",time());
            $T_HEUTE=explode(".",$HEUTE);
            $HEUTE_DATUM=mktime(0,0,0,$T_HEUTE[1],$T_HEUTE[0],$T_HEUTE[2]); 
            so da hast du den timestamp des Datums

            und jetzt kannst du ja einfach vergleichen

            PHP-Code:

            $HEUTE

            if ($TIMSTAMPDATUM$HEUTE_DATUM)
            {
            tu was....

            Zuletzt geändert von iilt; 15.02.2005, 22:24.

            Kommentar


            • #7
              cool das klingt schon besser. mein datum is zwar umgekehrt also 2005-02-01

              aber das werd ich einfachmal probieren und schon irgendwie schaffen

              danke

              Kommentar


              • #8
                probier's mal mit strtotime($datum)
                mens agitat molem

                Kommentar


                • #9
                  Original geschrieben von hardbase
                  achso sorry. das $Datum gibt aus:

                  2005-02-01

                  geht das dann dennoch mit time()?

                  also

                  if ($Datum < time())
                  {
                  bla bla
                  }

                  das wäre super dann probier ich aus :-)

                  danke
                  *argh*, wozu das Datum oben in einen Timestamp verwandeln, wenn man mit date() + entsprechende Parameter das aktuelle Datum in dem Format erzeugen kanne?
                  date ('Y-d-m');
                  wenn die zweite Zahl der Tag ist, wenn sie der Monat ist d und m vertauschen!

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar


                  • #10
                    @ghostgambler

                    $date(y-m-d) gibt aber nur z.B. den 05-02-19 zurück.
                    Aus der Datenbank zieht er aber: 2005-02-19 . Also
                    müßte er das Ganze doch wieder zum String verarbeiten
                    die 20 von 2005 via String-Funktion entfernen um dann
                    einen Vergleich ziehen zu können.

                    Wie wäre die Geschichte denn mit current_date() ?

                    Mit einem Select-Befehl das vorgegebe Datum auslesen
                    und mit einem zweiten Select das current_date und das
                    miteinander vergleichen!

                    Viele Grüße

                    Alex
                    Zuletzt geändert von Alfthe1st; 19.02.2005, 14:28.

                    Kommentar


                    • #11
                      $date(y-m-d) gibt aber nur z.B. den 05-02-19 zurück.
                      erstens heißt es date() und nicht $date! und zweitens solltest du mal ein bisschen Eigeninitiative zeigen und das Manual lesen date

                      Kommentar


                      • #12
                        http://dev.mysql.com/doc/mysql/en/da...functions.html
                        fände ich wesentlich besser.
                        Die Zeit hat ihre Kinder längst gefressen

                        Kommentar


                        • #13
                          ich auch!

                          Kommentar


                          • #14
                            @derHund

                            schliesse mich ebenfalls an

                            aber mein Lösungsweg ist auch nicht schlecht

                            Kommentar


                            • #15
                              generell sollte man wenn möglich die db arbeiten lassen.

                              aber in dem fall würde ich der faulheit halber auch die php-lösung unterjubeln!

                              Kommentar

                              Lädt...
                              X