Ausgabe der Monate in einem Zeitraum fehlerhaft

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

  • Ausgabe der Monate in einem Zeitraum fehlerhaft

    Ich möchte die Monate innerhalb eines Zeitraumes ausgeben.
    Im Internet habe ich Programmcode gefunden, dass dies machen soll, den ich angepasst habe.

    Hier der Code:


    $filter_von= "12.05.2005";
    $filter_bis= "12.10.2006";


    //Monate in einem Zeitraum ausgeben
    $anfang_monat=substr($filter_von, 3, 2);
    $anfang_jahr=substr($filter_von, 6, 4);
    $end_monat=substr($filter_bis, 3, 2);
    $end_jahr=substr($filter_bis, 6, 4);



    for($jahr = $anfang_jahr; $jahr <= $end_jahr; $jahr++) {



    for($monat = $anfang_monat; $monat <= 12; $monat++) {
    $jahrString = $jahr;
    if(strlen($jahrString) < 2) {
    $jahrString = '0'.$jahrString;
    }



    $monatString = $monat;
    if(strlen($monatString) < 2) {
    $monatString = '0'.$monatString;
    }


    $dateString = $monatString.'/'.$jahrString;

    if($jahrString == $end_jahr && $monatString > $end_monat) {
    break;
    }// else {
    echo "$dateString<br>\n";
    //}
    }
    }



    Und hier ist die Ausgabe, die ich erhalte, bei den beiden vorgebenenen Daten:


    05/2005
    06/2005
    07/2005
    08/2005
    09/2005
    10/2005
    11/2005
    12/2005
    05/2006
    06/2006
    07/2006
    08/2006
    09/2006
    10/2006


    Nach 12/2005 müsste er mit 01/2006 weitermachen. leider beginnt er bei dem Monat, das auch im Anfangsdatum steht.
    Hat jemand ein Tipp??

  • #2
    kann mir keiner sagen, was ich falsch mache???

    Kommentar


    • #3
      Wie wäre es damit?

      $filter_von= "12.05.2005";
      $filter_bis= "12.10.2006";

      //Monate in einem Zeitraum ausgeben
      $anfang_monat=substr($filter_von, 3, 2);
      $anfang_jahr=substr($filter_von, 6, 4);
      $end_monat=substr($filter_bis, 3, 2);
      $end_jahr=substr($filter_bis, 6, 4);

      for($jahr = $anfang_jahr; $jahr <= $end_jahr; $jahr++) {

      for($monat = 1; $monat <= 12; $monat++) {
      $jahrString = $jahr;
      if(strlen($jahrString) < 2) {
      $jahrString = '0'.$jahrString;
      }

      $monatString = $monat;
      if(strlen($monatString) < 2) {
      $monatString = '0'.$monatString;
      }

      $dateString = $monatString.'/'.$jahrString;

      $checkdate = mktime(12,0,0,$monatString,1,$jahrString);
      $checkdate2 = mktime(12,0,0,$anfang_monat,1,$anfang_jahr);

      if($checkdate >= $checkdate2) {
      if($jahrString == $end_jahr && $monatString > $end_monat) {
      break;
      }// else {
      echo "$dateString<br>\n";
      //}
      }
      }
      }

      Kommentar


      • #4
        super, danke. Funktioniert. Hurra

        Kommentar

        Lädt...
        X