Florian: Kalender Von-tage Bis-tage ausgeben

Hallo zusammen

ich habe folgendes Problem, Ich möchte nur die Tage ausgeben die ich vorher in meinem Formluar eingetragen habe.

Beispiel:

Von: 04.04.2005 Bis: 05.05.2008

jetzt möchte ich in einer Tabelle alle Tage die zwischen diesen beiden Daten sind ausgeben.

04.04.2008
05.04.2008
.
.
.
.
.
.
04.05.2008
05.05.2008

Bitte um Hilfe, Scriptbeispiel wäre super.

  1. Hallo Florian,

    ich habe folgendes Problem, Ich möchte nur die Tage ausgeben die ich vorher in meinem Formluar eingetragen habe.

    das heißt, Du hast die Eingabedaten bereits überprüft.
    Du hast überprüft, dass es sich um gültige Datumswerte handelt.
    Du hast überprüft, dass der Bis-Wert größer (oder gleich) ist als der Von-Wert.

    Von: 04.04.2005 Bis: 05.05.2008

    jetzt möchte ich in einer Tabelle alle Tage die zwischen diesen beiden Daten sind ausgeben.

    04.04.2008
    05.04.2008
    .
    .
    .
    .
    .
    .
    04.05.2008
    05.05.2008

    Wandle Von-Wert und Bis-Wert in den Julianischen Tag,
    durchlaufe den Bereich in einer Schleife und wandle bei jedem Schleifendurchlauf den Julianischen Tag wieder zurück in das entsprechende Datum.

    Verarbeite die resultierenden Datumsangaben gemäß Deinen Bedürfnissen.

    Freundliche Grüße

    Vinzenz

    1. Hallo vinzenz,

      danke erstmal für deine Antwort.

      ich habe das jetzt mal so gemacht wie du gesagt hast, aber zum schluss bekomme ich ein Array heraus mit Datum, Tag usw, ich will aber nur das datum anzeigen.
      Das Array gebe ich so aus print_r(cal_from_jd($Von,1);
      Wie gebe ich dann nur das datum aus?

      mfg

      Florian

    2. Ich habe das jetzt hinbekommen das ich nur das Datum am Ende ausgebe.
      ich bekomme jetzt immer ein falsches Datumsformat-> Monat/Tag/Jahr.
      ich möchte aber gerne Tag/Monat/Jahr, wie mache ich das?

      1. Hallo Florian,

        Ich habe das jetzt hinbekommen das ich nur das Datum am Ende ausgebe.
        ich bekomme jetzt immer ein falsches Datumsformat-> Monat/Tag/Jahr.
        ich möchte aber gerne Tag/Monat/Jahr, wie mache ich das?

        ist es so schwer, im PHP-Handbuch die Funktionsreferenz, in dieser die Datums- und Zeitfunktionen zu finden und sich dort zu date_format() durchzuarbeiten und für den Formatstring sich bei der verlinkten Funktion date() zu informieren?

        Wo bist Du in dieser Kette hängengeblieben?
        Kannst Du mit diesen Angaben Dein Ausgabeformatproblem lösen?

        Freundliche Grüße

        Vinzenz

    3. Hallo zusammen,

      @Vinzenz
      was hat es für einen Vorteil, das Datum so umzuwandeln?

      Ich würde einfach sowas hier machen:

      $aDate1 = explode(".",$sStart);
      $iTS1 = mktime(0,0,0,$aDate1['monat'],$aDate1['tag'],$aDate1['jahr']);

      $aDate2 = explode(".",$sEnde);
      $iTS2 = mktime(0,0,0,$aDate2['monat'],$aDate2['tag'],$aDate2['jahr']);

      $aDates = array();

      while ($iTS2 >= $iTS1) {
       $aDates[] = date("d.m.Y",$iTS1);
       $iTS1 += 86400; //1 Tag == 60*60*24
      }

      print_r($aDates);

      Gruß,
      Manu

      1. Jaa, statt $aDate1['monat'],$aDate1['tag'],$aDate1['jahr'] musst Du natürlich $aDate1[1],$aDate1[0],$aDate1[2] benutzen. Für das zweite Datum gilt dies analog.

        Gruß,
        Manu

      2. Hallo

        was hat es für einen Vorteil, das Datum so umzuwandeln?

        dass es funktioniert, ohne dass ich mir zusätzlich Gedanken machen muss. :-)
        Deswegen habe ich mir bei meinem Vorgehen etwas gedacht.

        Ich würde einfach sowas hier machen:

        $aDate1 = explode(".",$sStart);
        $iTS1 = mktime(0,0,0,$aDate1['monat'],$aDate1['tag'],$aDate1['jahr']);

        oh ja, ebenfalls Umwandlungen, ...

        $aDate2 = explode(".",$sEnde);
        $iTS2 = mktime(0,0,0,$aDate2['monat'],$aDate2['tag'],$aDate2['jahr']);

        while ($iTS2 >= $iTS1) {
        $aDates[] = date("d.m.Y",$iTS1);
        $iTS1 += 86400; //1 Tag == 60*60*24

        // Du bist ein Optimist. Leider stimmt das nicht immer.

        }

        und fällst mit diesem Code auf die Nase. Es gibt die Sommerzeit ...

        Genau davor schützt mich mein Vorgehen. Mein Vorgehen führt zu einer robusten Lösung im Gegensatz zu Deinem.

        Freundliche Grüße

        Vinzenz

        1. OK, das habe ich nicht bedacht...:)

          Gruß,
          Manu