Anzahl der Tage zwischen zwei Daten. Wo ist der Fehler?



  • HI,

    ich möchte gerne ab einem bestimmten tag zu heute die anzahl der tage wissen. hier ist meien funktion:

    function count_days($bisdat)
    {
       $vondat = "21.06.2006";
    
       list($vontag, $vonmon, $vonjahr) = explode(".", $vondat);
       list($bistag, $bismon, $bisjahr) = explode(".", $bisdat);
    
       if ($vonjahr % 4 != 0  or ($vonjahr % 100 == 0 and $vonjahr % 400 != 0))
       {
          $st = 28 ;
       } 
       else 
       {
         $st = 29;
       }
    
       $xtage = array( 0, 31, $st, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    
       if ($bistag < $vontag)
       {
          $bistag += $xtage[$vonmon];
          $vonmon += 1;
       }
       if ($bismon < $vonmon)
       {
          $bismon += 12;
          $vonjahr +=1;
       }
       $tage  = $bistag - $vontag;
       $monate = $bismon - $vonmon;
       $jahre  = $bisjahr - $vonjahr;
       $alter  = array('j'=>$jahre, 'm'=>$monate, 't'=>$tage);
    
       return $tage;
    }
    

    fehler: Notice: Undefined index: 06 in ..... on line 28
    -19

    Kann mir da jemand helfen?

    Ida



  • phpversion?

    <?
    function count_days($bisdat)
    {
       $vondat = "21.06.2006";
    
       list($vontag, $vonmon, $vonjahr) = explode(".", $vondat);
       list($bistag, $bismon, $bisjahr) = explode(".", $bisdat);
    
       if ($vonjahr % 4 != 0  or ($vonjahr % 100 == 0 and $vonjahr % 400 != 0))
       {
          $st = 28 ;
       }
       else
       {
         $st = 29;
       }
    
       $xtage = array( 0, 31, $st, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
    
       if ($bistag < $vontag)
       {
          $bistag += $xtage[$vonmon];
          $vonmon += 1;
       }
       if ($bismon < $vonmon)
       {
          $bismon += 12;
          $vonjahr +=1;
       }
       $tage  = $bistag - $vontag;
       $monate = $bismon - $vonmon;
       $jahre  = $bisjahr - $vonjahr;
       $alter  = array('j'=>$jahre, 'm'=>$monate, 't'=>$tage);
    
       return $tage;
    }
    echo count_days("6.6.2008");
    

    da kommt bei mir -15 raus^^



  • Hi,

    das läuft unter PHP Version 5. Nur wüsste ich nicht was da falsch ist.

    Ida



  • Benutz doch einfach strtotime und rechne mit Integerwerten, anstatt einen so umständlichen Code zu verwenden.


Anmelden zum Antworten