Kalender Von-tage Bis-tage ausgeben
Florian
- php
0 Vinzenz Mai
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.
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
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
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?
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
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
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
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
OK, das habe ich nicht bedacht...:)
Gruß,
Manu