Mailinglisten-Archive |
Hallo Alex, Am Donnerstag, 27. April 2006 12:05 schrieb Alex: > Bei obigem Code werden ja leider nur die zwei "Dates" 06.12.2006 und > 03.02.2007 in das > Array gepackt. Wie bekomme ich aber die dazwischen liegenden "Dates" > (07.12.2006-02.02.2007) ebenfalls in das Array. > Leider habe ich keinen Ansatz wie ich diese Tage berechnen könnte. hier kommt die erweiterte Version, wo auch die Zwischendaten ermittelt und mitverarbeitet werden: <pre> <?php // 1. Ausgangsinformationen: von-Datum und bis-Datum $aAusgangsinfos = array('06.12.2006','03.02.2007'); $aAlleTage = array(); // 2. von-Datum und bis-Datum zerlegen und Differenz in Tagen berechnen $aDatumVon = explode('.', $aAusgangsinfos[0]); $aDatumBis = explode('.', $aAusgangsinfos[1]); $iZeitVon = mktime(0,0,0,$aDatumVon[1],$aDatumVon[0],$aDatumVon[2]); $iZeitBis = mktime(0,0,0,$aDatumBis[1],$aDatumBis[0],$aDatumBis[2]); $iTageDiff = ($iZeitBis - $iZeitVon) / (60*60*24); /* 3. Array $aAusgangsinformationen leeren * und mit allen Daten zwischen von- und bis-Datum einschliesslich fuellen */ $aAusgangsinfos = array(); for ($i=0; $i<($iTageDiff+1); $i++) { $aAusgangsinfos[] = date('d.m.Y', ($iZeitVon+($i * 60*60*24))); } // 4. Daten durchlaufen und in Arraystruktur umfuellen foreach ($aAusgangsinfos as $sDatum) { $aDatum = explode('.', $sDatum); $aEinTag = array(); $aEinTag[$aDatum[0]][$aDatum[1]][$aDatum[2]] = ''; $aAlleTage[] = $aEinTag; } // 5. Testausgabe des fertigen Ergebnisses print_r($aAlleTage); ?> </pre> Viele Grüße Lutz
php::bar PHP Wiki - Listenarchive