Tage zwischen Datums berechnen

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

  • Tage zwischen Datums berechnen

    Ich berechne die Tage zwischen 2 Datums so:
    PHP-Code:
    $myArrayDatumVon explode("."$von);
    $datumVon mktime(0,0,0,$myArrayDatumVon[1],$myArrayDatumVon[0],$myArrayDatumVon[2]);
    $myArrayDatumBis explode("."$bis);
    $datumBis mktime(0,0,0,$myArrayDatumBis[1],$myArrayDatumBis[0],$myArrayDatumBis[2]);
    $tage = (($datumBis-$datumVon) / (3600*24)) + 1
    Das ganze funktioniert nicht richtig.
    Beispiel 1: Di. 21.03.2012 - Sa. 24.03.2012 -> 4 Tage
    Beispiel 2: So. 25.03.2012 - Mi. 28.03.2012 -> 3.95833333333 Tage
    Woran zum Teufel liegt das?
    Wie kann man die Tage besser berechnen?

  • #2
    Nicht jeder Tag hat 24 Stunden. Da mit Sekunden zu rechnen ist ziemlich ungünstig.

    PHP-Code:
    $startDate = new DateTime('2012-03-25');
    $endDate = new DateTime('2012-03-28');
    $diff $startDate->diff($endDate);

    echo 
    $diff->days;
    // 3 

    Kommentar


    • #3
      Das ist ja neu

      Das ist mir neu, dass nicht jeder Tag 24 Stunden lang ist.
      Andererseits ist mir nun eingefallen, dass die Uhrzeit am Sonntag
      auf Sommerzeit umgestellt. Es müsste also daran liegen.
      OK, deine Methode sollte da zuverlässiger sein.

      Kommentar


      • #4
        Zitat von sonderbar Beitrag anzeigen
        Das ist mir neu, dass nicht jeder Tag 24 Stunden lang ist. Andererseits ist mir nun eingefallen, dass die Uhrzeit am Sonntag
        auf Sommerzeit umgestellt. Es müsste also daran liegen.
        Und der 25. März hat eben 23 Stunden und nicht 24.

        Zitat von sonderbar Beitrag anzeigen
        OK, deine Methode sollte da zuverlässiger sein.
        Zumindest solange du keine fehlerhafte PHP-Version (unter Windows) hast. Dann würdest du nämlich als Ergebnis immer 6015 Tage bekommen

        Kommentar

        Lädt...
        X