Nächster Monat, Nächstes Jahr
Norbert
- php
1 Sven Rautenberg0 Tabellenkalk
Hallo,
wenn mir
$Monat = date("m",time());
$Jahr = date("Y",time());
den aktuellen Monat und das aktuelle Jahr ausspuckt, wie kann ich dann, ausgehend vom aktuellen Datum auf den nächsten Monat (und bei Jahreswechseln natürlich entsprechend auch das nächste Jahr) zugreifen?
Gruß, Norbert
Moin!
Hallo,
wenn mir
$Monat = date("m",time());
$Jahr = date("Y",time());
> den aktuellen Monat und das aktuelle Jahr ausspuckt, wie kann ich dann, ausgehend vom aktuellen Datum auf den nächsten Monat (und bei Jahreswechseln natürlich entsprechend auch das nächste Jahr) zugreifen?
Das DateTime-Objekt benutzen. Wenn du nur genau EIN Objekt benutzt, kann es dir auch nicht passieren, dass du den Monat Dezember und das Jahr vom darauffolgenden Januar bekommst - so wie es dir in deinem aktuellen Code passieren kann.
~~~php
$nextMonth = new DateTime('next month');
$Monat = $nextMonth->format('m');
$Jahr = $nextMonth->format('y');
var_dump($Monat, $Jahr);
Ist getestet und für funktionierend befunden.
- Sven Rautenberg
Wo wir schonmal dabei sind :)
und jetzt noch einen Code um immer den 01. eines Monat zu bekommen :) - danke.
Gruß
vordernder
T-Rex
Tach!
und jetzt noch einen Code um immer den 01. eines Monat zu bekommen :) - danke.
strtotime('first day of next month');
oder in modern:
$date = new DateTime('first day of next month');
dedlfix.
Moin!
Tach!
und jetzt noch einen Code um immer den 01. eines Monat zu bekommen :) - danke.
strtotime('first day of next month');
oder in modern:
$date = new DateTime('first day of next month');
Geht natürlich auch kürzer:
$FirstDay = '01';
:)
Spannend wird's natürlich bei 'second monday of previous month' und ähnlichem.
- Sven Rautenberg
Tach!
$date = new DateTime('first day of next month');
Geht natürlich auch kürzer:
$FirstDay = '01';
> :)
Ja ja ja, und nun bilde bitte aus dieser 01 den Wochentag dazu.
> Spannend wird's natürlich bei 'second monday of previous month' und ähnlichem.
Na, das funktioniert doch einwandfrei. Ergibt aktuell den 10. Juni 2013.
dedlfix.
Geht natürlich auch kürzer:
$FirstDay = '01';
>
> :)
Die Zeit- und Datumsrechnung ist ja sowas von kompliziert ...
Zwischenzeitlich wird mal eine Stunde hinzu- oder weggefügt, wirklich kaum zu durchschauen.
Fängt wirklich jeder Monat mit dem Tag 1 an? Auch in Schaltjahren bei Vollmond? Ich kann's nicht glauben.
Gast
Hallo,
Fängt wirklich jeder Monat mit dem Tag 1 an? Auch in Schaltjahren bei Vollmond? Ich kann's nicht glauben.
ja, ich glaub' schon. :-)
Ich hätte auch lieber eine mit 0 beginnende Zählung ...
Ciao,
Martin
$Monat = $nextMonth->format('m');
$Jahr = $nextMonth->format('y');var_dump($Monat, $Jahr);[/code]
Ist getestet und für funktionierend befunden.
- Sven Rautenberg
Hi Sven,
danke, kann man die führende Null bei den Monaten auch weglassen?
Norbert
Moin!
$Monat = $nextMonth->format('m');
$Jahr = $nextMonth->format('y');var_dump($Monat, $Jahr);[/code]
Ist getestet und für funktionierend befunden.
- Sven Rautenberg
Hi Sven,
danke, kann man die führende Null bei den Monaten auch weglassen?
Hast du doch bei deinem Code auch nicht. ;)
Der Formatierungsparameter ist für die date()-Funktion und das DateTime-Objekt identisch.
Aber ich habe dir ein kleines y untergejubelt, korrekt wäre natürlich das große Y für's Jahr.
Insofern: Lies die Doku von date(). Und DateTime::format().
- Sven Rautenberg
Hallo,
wie kann ich dann, ausgehend vom aktuellen Datum auf den nächsten Monat (und bei Jahreswechseln natürlich entsprechend auch das nächste Jahr) zugreifen?
indem du einen Monat bzw. ein Jahr addierst.
Das Beispiel auf php.net zeigt wie es für eine Woche funktioniert.
Gruß
Kalk
Om nah hoo pez nyeetz, Tabellenkalk!
wie kann ich dann, ausgehend vom aktuellen Datum auf den nächsten Monat (und bei Jahreswechseln natürlich entsprechend auch das nächste Jahr) zugreifen?
indem du einen Monat bzw. ein Jahr addierst.
Das Beispiel auf php.net zeigt wie es für eine Woche funktioniert.
Das halte ich (ungetestet) für problematisch. Beim 31. Januar landet man vielleicht im März.
Matthias