differenz zweier daten in tagen berechnen

  • hallo zusammen,
    ich habe in einer variable ein datum der form 20.10.2005 stehen. ich ermittle mir dann noch das aktuelle datum in der form 20.10.2005.
    nun möchte ich gerne die differenz der beiden daten in tagen berechnen.

    kann mir da jemand einen tip geben, wie ich das anstellen kann?

    vielen dank

  • Nimm dieses:
    [php:1:73769028a7]<?php
    $Alt_Datum = "14.10.2005";
    list($ad,$am,$ay) = split("\\.",$Alt_Datum);

    $Alt_Wert = mktime(0,0,0,$am,$ad,$ay);
    $DIFF = time() - $Alt_Wert;
    $Tage = floor($DIFF/86400);
    echo "Differenz: $Tage Tage";
    ?>[/php:1:73769028a7]

    G.a.d.M.

    Ronald

  • Piety hatte vermuttlich keine Zweifel, aber ich. ;)

    Zwei Bespiele:

    // 14.17.2009 - 30.03.2009

    $diff = mktime(0,0,0,7,14,2009)-mktime(0,0,0,3,30,2009);
    $Tage = floor($diff/86400);
    echo "Differenz: $Tage Tage"; // liefert 106 Tage

    // 14.17.2009 - 29.03.2009

    $diff = mktime(0,0,0,7,14,2009)-mktime(0,0,0,3,29,2009);
    $Tage = floor($diff/86400);
    echo "Differenz: $Tage Tage"; // liefert ebenfalls 106 Tage

    Wie man sieht, ist die Berechnung der Tage nur bedingt richtig.
    Dein Algorithmus rechnet nur bis einer Differenz von 106 Tagen korrekt.
    Danach kann man den Code in den Müll stopfen.

    Mit PHP >= 5.3.0 sollte man DateTime::diff(...) verwenden.
    Mit älteren PHP-Versionen fählt mir nur der Einsatz von MySQL:

    SELECT DATEDIFF("2009-07-14", "2009-03-30")
    => 106 Tage

    SELECT DATEDIFF("2009-07-14", "2009-03-29")
    => 107 Tage