Mailinglisten-Archive |
Hallo Reinhold, > Also wie komme ich problemlos von einem n-letzten Tag eines > Monats zum nächten n-letzten? > Schau Dir mal im Manual den Befehl "date()" an. Da findest Du den Buchstaben "j" als "Tag des Monats ohne führende Nullen". Wenn Du nun ein Datum besitzt, das mit seinem Timestamp bekannt ist (z.B. über mktime()), dann kannst Du auf diese Weise die Nummer des aktuellen Monats heraussuchen und Dir gleich auch das aktuelle Jahr besorgen: $akt_month = date("j", $timestamp); $akt_year = date("Y", $timestamp); Jetzt machst Du folgendes: Du weißt, dass jeder Monat mit dem 1. beginnt. Tut's doch, oder? ;-) Also generierst Du Dir anhand der ermittelten Daten einen neuen Timestamp mit dem gewünschten Monat minus 1 ($akt_month - 1), und zwar den jeweils 1. des Monats und kombinierst diesen neuen Timestamp direkt mit der date()-Funktion: $new_month = date("n", mktime(0, 0, 0, ($akt_month - 1), 1, $akt_year)); $last_day = date("t", mktime(0, 0, 0, ($akt_month - 1), 1, $akt_year)); Wobei "n" den momentanen Monat ohne führende Null angibt und "t" die Anzahl der Tage in diesem Monat angiebt, also z.B. beim Februar den 28. - das ist das, was Du wolltest. Das ganze neue Datum könntest Du Dir auch direkt ausgeben lassen (ISO-Format, MySQL tauglich): $last_day = date("Y-m-t", mktime(0, 0, 0, ($akt_month - 1), 1, $akt_year)); > Gruß, Reinhold Gruß Tim
php::bar PHP Wiki - Listenarchive