phpbar.de logo

Mailinglisten-Archive

[php] 86400s != 1d

[php] 86400s != 1d

Tacker, Markus php_(at)_phpcenter.de
Fri, 12 Oct 2001 12:24:00 +0200


Hoi Liste,

ich habe gerade einen Kalender programmiert und dabei ist mir etwas
seltsames aufgefallen.

Ich ermittelte das Datum des n=E4chtsen Tages einfach, indem ich zum =
timestamp
von heute 00:00:00 Uhr 86400 Sekunden addiert habe. Logischerweise =
m=FC=DFte ich
dann beim n=E4chsten Tag um 0 Uhr gelandet sein. Diesen Vorgang =
wiederholte
ich so oft wie Tage im Kalender angezeigt werden sollten. Dabei traten =
dann
seltsame Effekte auf (z.B., das Termine, die an einem bestimmten Tag =
gewesen
w=E4ren, am Tag vorher angezeigt wurden).

Nun ersetzte ich (sinngem=E4=DF)

<?php
$heute =3D mktime(0,0,0);
$akt_tag =3D $heute;
while(...) {
	$akt_tag =3D $akt_tag + 86400;
}
?>

durch

<?php
$heute =3D mktime(0,0,0);
$akt_tag =3D $heute;
while(...) {
	$akt_tag =3D mktime(0,0,0,date("m",$akt_tag),(date("d",$akt_tag) +
1),date("Y",$akt_tag)),
}
?>

und prompt funktionierte es korrekt.

Warum?


mfg
m.tacker


php::bar PHP Wiki   -   Listenarchive