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