Maresa P.: 2 Daten: Tage dazwischne berechnen

Hallo,

mit stehen zwei Daten (Plural von Datum) im Format DD.MM.YYYY zur Verfügung:

Bspl.:

$datum_von = '17.11.2003'
$datum_bis = '19.12.2003'

Ich möchte nun mit PHP berechnen, wieviele Tage zwischen $datum_von und $datum_bis liegen.

Wie ist das zu realisieren.

liebe Grüße

Maresa P.

  1. Hallo,

    mit stehen zwei Daten (Plural von Datum) im Format DD.MM.YYYY zur Verfügung:
    $datum_von = '17.11.2003'
    $datum_bis = '19.12.2003'
    Ich möchte nun mit PHP berechnen, wieviele Tage zwischen $datum_von und $datum_bis liegen.

    Wandle diese Daten mit den geeigneten String- und Datumsfunktionen
    http://www.php.net/manual/de/ref.strings.php
    http://www.php.net/manual/de/ref.datetime.php
    in UNIX-Timestamps um, berechne damit die Differenz in Sekunden
    und wandle diese dann wieder in Tage um.

    Gruesse,

    Thomas

    1. Hi Thomas,

      gibt es in PHP auch die Möglichkeit die laufende Woche zu ermitteln?? Also Wie G:i:s, dass man die laufende Woche z.B. Woche "48" erhält??

      Greets Tom1tk

      1. Hi Thomas,

        gibt es in PHP auch die Möglichkeit die laufende Woche zu ermitteln?? Also Wie G:i:s, dass man die laufende Woche z.B. Woche "48" erhält??

        date (W) erlaubt die ausgabe der Woche!
        Aber nur der aktuellen Woche.
        TomIRL

        1. Hallo,

          date (W) erlaubt die ausgabe der Woche!
          Aber nur der aktuellen Woche.

          Wie kommst Du auf diese (unwahre) Einschraenkung?
          Lies mal das Manual zu date():
          http://www.php.net/manual/de/function.date.php
          Der Funktion kann man einen optionalen zweiten Parameter
          im Unix-Timestamp-Format geben.

          $samichlaus="6 december 2003";
          $zeitstempel=strtotime($samichlaus);
          $woche=date("W",$zeitstempel);
          print("<p>Samichlaus ($samichlaus) ist in der Kalenderwoche $woche.</p>");

          Ausgabe:

          Samichlaus (6 december 2003) ist in der Kalenderwoche 49.

          Und damit Du jetzt nicht behauptest, das "49" sei ja die aktuelle Woche,
          habe ich es auch noch mit einem anderen Datum ausprobiert:
          Heiligabend (24 december 2003) ist in der Kalenderwoche 52.

          Gruesse,

          Thomas

          P.S. Die Umwandlung vom (veralteten) "deutschen" Datumsformat dd.mm.yyyy
          in einen Unix-Timestamp muss wie erwaehnt ueber einen Umweg mit
          String-Funktionen geschehen.
          Man kann strtotime() _nicht_ direkt mit einem "deutschen" Datum fuettern.
          http://www.php.net/manual/de/function.strtotime.php

  2. Am besten du wandelst das Datum mit strtotime() in einen UNIX Timestamp  um.
    Anschließend zieht du dann beide Werte voneinader ab. Die Differenz kannst du dann ja einfach von Sekunden wieder auf Stunden oder Tage wieder runterrechnen.

  3. ICh hatte vor ein paar Tagen mal eine Lösung gesucht und gefunden.

    $von_arr = explode (".", $termin[von]);
       //print_r ($von_arr);
       $rd_von="$von_arr[2]"."$von_arr[1]"."$von_arr[0]";
       print ("$rd_von<br>");
    $b_von = mktime(0,0,0,"$von_arr[1]","$von_arr[0]","$von_arr[2]");

    $bis_arr = explode (".", $termin[bis]);
       //print_r ($bis_arr);
       $rd_bis="$bis_arr[2]"."$bis_arr[1]"."$bis_arr[0]";
       print ("<br>$rd_bis<br>");
    $b_bis=mktime(0,0,0,"$bis_arr[1]","$bis_arr[0]","$bis_arr[2]");

    //Berechnung der Tage

    $btage=$b_bis-$b_von;
    $tage=$btage / 86400;

    Beachte hierbei Sommerzeit/Winterzeit Probleme.
    TomIRL