phpbar.de logo

Mailinglisten-Archive

[php] Datumsdifferenz als TT.MM.JJJJ in Array packen

[php] Datumsdifferenz als TT.MM.JJJJ in Array packen

Sebastian Mendel lists at sebastianmendel.de
Don Apr 27 15:53:07 CEST 2006


Lutz Zetzsche schrieb:
> Hallo Peter,
> 
> Am Donnerstag, 27. April 2006 12:52 schrieb Peter Bieling:
>> Lutz Zetzsche wrote:
>>>   for ($i=0; $i<($iTageDiff+1); $i++) {
>>>     $aAusgangsinfos[] = date('d.m.Y', ($iZeitVon+($i * 60*60*24)));
>>>   }
>> im Prinzip könnte man das auch in dieser Art lösen, indem man einfach
>> den Tag weiterzählt, bis das Enddatum stimmt:
>>
>> <?php
>> $day=6;
>> $date='';
>> while ($date != '03.02.2007') {
>>      $date =  date("d.m.Y", mktime(0, 0, 0, 12, $day, 2006));
>>      echo $date .  "<br>";
>>      $day ++;
>> }
>> ?>
>>
>> Dies nur als Test. Das muss man natürlich noch entsprechend
>> abstrahieren.
> 
> technisch ist das zwar möglich, aber inhaltlich äußerst unelegant. :-) 
> Damit nutzt Du aus, daß PHP ein fehlerhaftes Datum korrigiert. Also 
> eigentlich machst Du hier absichtlich einen Fehler und verläßt Dich 
> darauf, daß PHP es dann so machst, wie es sein soll. Mir persönlich 
> gefällt das nicht so. Ich finde es auch vom Code her nicht so 
> verständlich. Ohne Hintergrundwissen ist das nicht selbsterklärend.

Das ist aber keinesfalls ein Fehler sondern eine Funktion von mktime()

Im Handbuch wird sogar ausdrücklich darauf hingewiesen und als Beispiel 
verwendet.

"mktime() is useful for doing date arithmetic and validation, as it will 
automatically calculate the correct value for out-of-range input."

Genau dafür ist mktime() unter anderem vorhanden. mktime() erwartet 
nicht unbedingt ein gültiges Datum, es liefert aber immer eins zurück.


-- 
Sebastian Mendel

www.sebastianmendel.de

php::bar PHP Wiki   -   Listenarchive