Datumsberechnung

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

  • Datumsberechnung

    Hi,

    Bin mit meiner Frage ursprünglich an der falschen Stelle gelandet, aber jetzt hoffentlich passt´s.
    Also - ich möchte die Zeitdifferenz in Tagen von einem bestimmten Datum (aus der Datenbank) zum aktuellen Datum ausgeben.
    Etwa: "gültig noch ... Tage!"
    Ich weiß einfach keinen Ansatz. Wäre für Hilfe dankbar!

    Günter

  • #2
    select to_days(now()) - to_days(datumsfeld_in_tabelle) from tabelle;

    Kommentar


    • #3
      Ich versteh diese Abfrage jetzt, aber wie kombiniere ich sie mit meiner ursprünglichen:
      select * from ...
      beides aus der selben Tabelle.

      Günter

      Kommentar


      • #4
        Schreib doch mal deine Abfrage.

        Dann findet sich ne Lösung.

        Kommentar


        • #5
          He, diese Frage gibt's ja doppelt und auch die Antwort
          http://www.php-resource.de/forum/sho...?threadid=5742

          Ich war auf der Suche nach einem eventuell ursprünglichen select von Dir.


          Beides aus der selben Tabelle?
          select to_days(datumsfeld1_in_tabelle) - to_days(datumsfeld2_in_tabelle) from tabelle;

          Kommentar


          • #6
            Ich hab anscheinend u.a. das Problem mein Vorhaben klar zu schildern. Aus einer Reihe von Angaben, die sich in der Datenbank befinden, möchte mit der Abfrage Kleinanzeigen generieren. Nun möchte ich bei der Ausgabe die verbleibende Geltungsdauer in Tagen angeben (14 Tage ab dem Tag der Eingabe). Ich weiß nicht, wie ich meine sql-Abfrage schreiben soll, da ich die Werte fast aller Spalten der Tabelle brauch und eben den Wert, der aus dem Eingabedatum und dem aktuellen Datum mit
            select to_days(now()) - to_days(datumsfeld_in_tabelle) from tabelle;
            ermittelt wird. Mein Script sieht dzt.so aus:

            <?
            include ("open_db.php");
            $sql1 = "select to_days(datum1)-to_days(now()) from kleinanzeigen";
            $result1 = mysql_query($sql1, $Verbindung);
            $number1 = mysql_num_rows($result1);
            $sql = "select * from kleinanzeigen";
            $result = mysql_query($sql,$Verbindung);
            $number = mysql_num_rows($result);
            if ($number == "0")
            {
            echo
            "<div id='Layer3' style='position:absolute; left:150px; top:100px; width:400px; height:1px; font-family:Arial; font-size:12pt;
            font-weight:bold; text-align:center'>Derzeit gibt es keine Anzeigen!</div>";
            }
            echo"<div id='Layer4' style='position:absolute; left:200px; top:40px; width:300px; height:390px; overflow:auto; z-index:2;'>";
            while ($row = mysql_fetch_array($result,MYSQL_ASSOC))
            {
            $datum2 = $row["datum2"];
            $vorname = $row["vorname"];
            $nachname = $row["nachname"];
            $strasse = $row["strasse"];
            $plz = $row["plz"];
            $ort = $row["ort"];
            $tel = $row["tel"];
            $email = $row["email"];
            $text1 = $row["text1"];
            $text2 = $row["text2"];
            $check_name_anschrift = $row["check_name_anschrift"];
            $check_tel = $row["check_tel"];
            $check_email = $row["check_email"];
            $preg = "([0-9]{4}).([0-9]{2}).([0-9]{2})";
            preg_match ("/$preg/", $datum2, $regs);
            $datum3 = $regs[3].".".$regs[2].".".$regs[1];
            echo "<table width='100%' height='1'><tr><td style='font-family:Arial; font-size:8pt; padding-left:10px; padding-top:10px; padding-right:10px;
            background-color:#FFFFFF'>
            <b>",$text1,"</b>&nbsp;",$text2,"<br>";
            if ($check_name_anschrift != "0")
            {
            echo
            ,$vorname,"&nbsp;",$nachname,"<br>",$strasse,"<br>",$plz,"&nbsp;",$ort,"<br>";
            }
            if ($check_tel != "0")
            {
            echo
            "<img src='bilder/tel-symbol.gif'>&nbsp;",$tel,"<br>";
            }
            if ($check_email != "0")
            {
            echo
            "E-Mail:&nbsp;<a href='mailto:$email'>",$email,"</a></td></tr>";
            }
            else
            {}
            echo
            "<tr><td style='font-family:Arial; font-size:8pt; background-color:#FFFFFF; padding-left:10px'>gültig bis:&nbsp;<b>",$gueltig,"</b></td></tr>
            <tr><td>&nbsp;</td></tr></table>";
            }
            "</div";

            ?>

            Kommentar


            • #7
              Da mußt Du einfach das Datum aus Deiner Tabelle + 14 Tage in eine Variable schreiben und dann mit dem aktuellen Datum vergleichen. Mehr ist das nicht.

              Gruß
              Arni
              Bei Risiken und Nebenwirkungen fragen Sie Dr.Alban

              Kommentar


              • #8
                Meinst Du vielleicht so was?
                Code:
                select [b]*,to_days(datum1)-to_days(now()) AS tagesdifferenz [/b]from kleinanzeigen";
                ....
                ....
                while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) 
                { 
                $datum2 = $row["datum2"]; 
                ...
                [b]$diff = $row["tagesdifferenz"];[/b]
                ...

                Kommentar


                • #9
                  Ich hab nun die Variable mit dem Ablaufdatum und das aktuelle Datum, aber wie sieht die Funktion aus, mit der ich den vergleich anstelle, um die Resttage zu ermitteln.
                  Es tut mir leid, daß ich mich so blöd anstelle - jedenfalls bin ich für eure Hilfe dankbar.

                  Günter

                  Kommentar


                  • #10
                    Hi, hand,

                    dein beitrag kam, während ich meinen letzten schrieb, aber ich glaub, das wars. Ich versuchs jedenfalls.

                    Danke Günter

                    Kommentar


                    • #11
                      Es klappt!!!

                      Danke Günter

                      Kommentar

                      Lädt...
                      X