phpbar.de logo

Mailinglisten-Archive

AW: [php] Datum - 1 Monat

AW: [php] Datum - 1 Monat

php at stelzi.net php at stelzi.net
Die Jun 8 21:09:31 CEST 2004


> -----Ursprüngliche Nachricht-----
> Von: php-bounces at phpbar.de [mailto:php-bounces at phpbar.de] Im Auftrag
von
> Sebastian Mendel
> Gesendet: Dienstag, 08. Juni 2004 18:38
> An: deutschsprachige PHP-Mailingliste
> Betreff: Re: [php] Datum - 1 Monat
>
> ANGEL Harald schrieb:
>
> > Hi Liste!
> >
> > $dat5 = "2004-07-31";
> > $dat2 = getdate(strtotime($dat5." -1 month"));
> > echo $dat2;
> >
> > Da kommt heraus: "2004-07-01"
> >
> > Das is doch unsinnig oder?? 31.7 weniger einem Monat ist doch
sinniger
> > weise der 30.6. und nicht der 1.7.!
>
> 2004-07-31 - 1 monat = 2004-06-31 = 2004-07-01
>
> stimmt schon ... irgendwie
>
> > Wie bring ich das php ohne 10 ifs bei??
>
> du musst halt überprüfen ob der Monat zu dem du wechseln willst auch
so
> viele Tage hat wie der aktuelle Tag ist, wenn nicht brauchst du den
> letzten Tag von dem Monat zu dem du wechseln willst

*grübel* es gibt nen wunderbaren befehl in php: checkdate()

hab mal ein paar zeilen geproggt dies sollte (ungeprüft) eigentlich
gehen:
<code>
$dat5 = "2004-07-31";
$dat_t = explode('-',$dat5);

$dat_t[1]--;
if ($dat_t[1] == 0)
{
	$dat_t[1] = 12;
	$dat_t[0]--;
}
while (!checkdate($dat_t[1],$dat_t[2],$dat_t[0])) $dat_t[2]--;

$dat_ausgabe = implode('-',$dat_t);
</code>

Hoffe geholfen zu haben!

Mit freundlichen Grüßen
Wolfgang Stelzhammer




php::bar PHP Wiki   -   Listenarchive