Seite 1 von 1
mktime() beachtet Schaltjahre?
Verfasst: 22.04.2007 10:54
von leopittoni
Hallo
Kleine Frage zu mktime()
mktime() ist hilfreich bei Datumsberechnungen und -prüfungen, da automatisch das korrekte Datum für ungültige Angaben berechnet wird
http://de.php.net/mktime
Beachtet mktime() auch Schaltjahre? Oder muss man das "manuell" nochmals überprüfen?
Danke, Léo
Verfasst: 22.04.2007 10:57
von Miriam
Überprüfe es doch vorher, indem Du mit checkdate() die Gegenprobe machst.....
Verfasst: 22.04.2007 11:00
von leopittoni
mktime() passt das Datum ja gleich richtig an. Also
32.01.2007 wird automatisch zu 01.02.2007
checkdate() gibt mir da einfach nur false aus...
Deshalb: korrigiert mktime() auch Schaltjahre?
Léo
Verfasst: 22.04.2007 11:17
von Miriam
Entweder Du liest das von Dir verlinkte durch (und die Antwort auf Deine Frage steht dort).
Oder Du probierst es aus. Code zum Testen ist auch auf der verlinkten Seite vorhanden....
Verfasst: 22.04.2007 11:20
von leopittoni
Hab ich gelesen...
ist das angegebene Datum gültig, wird TRUE zurückgegeben, ansonsten FALSE.
Das sagt mir aber auch nicht, ob mktime() beim Korrigieren eines Datums Schaltjahre beachtet...
Léo
Verfasst: 22.04.2007 11:42
von Miriam
Du solltest die Seite hinter Deinem Link lesen....
Beispiel 386. Letzter Tag des nächsten Monats
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo strftime ("Letzter Tag im Feb. 2000 ist der %d.", $lastday);
?>
Da steht doch alles... sogar mit Codebeispielen, die Du gern benutzen kannst.....
Verfasst: 22.04.2007 11:47
von leopittoni
Was das jetzt mit meiner Frage zu tun hat bleibt mir ein Rästel...
Vielleicht war meine Frage unglücklich gestellt...
mktime() korrigiert ja automatisch das Datum. Dass heisst: wenn das Datum zb. 33.01.2007 ist, wird es automatisch zu 02.02.2007.
Meine Frage war nichts anderes als: werden in diesen Korrekturen auch Schaltjahre beachtet?
Léo
Verfasst: 22.04.2007 11:56
von easygo
leopittoni hat geschrieben:Beachtet mktime() auch Schaltjahre? Oder muss man das "manuell" nochmals überprüfen?
Komische Frage! mktime erstellt immer den korrekten UNIX Timestamp, nicht mehr und nicht weniger.
date kann u.a. das korrekte Datum draus machen und berücksichtigt dabei Schaltjahre..
Echo: 01.03.2005
Verfasst: 23.04.2007 00:27
von Dennis63
Warum sollte es Schaltjahre denn nicht beachten? Ist doch etwas ganz stinknormales, und nichts besonderes.
Wobei es deutlich schneller gehen sollte, einfach zwei PHP-Zeilen zu schreiben, als hier auf eine Antwort zu warten.
Daher: Probiere doch aus, was mktime() mit dem 29.02.2000 und dem 29.02.2001 macht
Grüße
Dennis