Moin zusammen,
ich bastle gerade eine kleine PHP-Funktion, die mittels Carbon in einer Schleife Zeiträume berechnet:
Das Ergebnis sieht folgendermaßen aus:
Die ersten beiden Bereiche werden korrekt berechnet -
jeweils der erste und letzte Tag des Monats - dann + 1 Monat.
Ab dem dritten Abschnitt wird aber jeweils an Stelle des letzten
Monatstages der erste Tag des daraufliegenden Monats an-
gezeigt.
Habe ich heir einen Fehler eingebunden?
VG,
ich bastle gerade eine kleine PHP-Funktion, die mittels Carbon in einer Schleife Zeiträume berechnet:
PHP:
public function forecast()
{
$date = Carbon::parse('2020-07-01');
$dateToday = Carbon::now();
$initDateStr = Carbon::parse('2020-07-01')->toDateString();
$transactionsFirstDay = Carbon::parse($initDateStr)->startOfMonth();
$transactionsLastDay = Carbon::parse($initDateStr)->endOfMonth();
// TODO -> Schleife, von Start bis Ende/Vormonat
while ($date < $dateToday) {
echo "First Date: " . $transactionsFirstDay . "<br>";
echo "Last Date: " . $transactionsLastDay . "<br>";
echo "Date: " . $date . "<br>";
echo "<br><hr><br>";
$transactionsFirstDay->addMonth();
$transactionsLastDay->addMonth();
$date->addMonth();
}
}
Das Ergebnis sieht folgendermaßen aus:
First Date: 2020-07-01 00:00:00
Last Date: 2020-07-31 23:59:59
Date: 2020-07-01 00:00:00
First Date: 2020-08-01 00:00:00
Last Date: 2020-08-31 23:59:59
Date: 2020-08-01 00:00:00
First Date: 2020-09-01 00:00:00
Last Date: 2020-10-01 23:59:59
Date: 2020-09-01 00:00:00
First Date: 2020-10-01 00:00:00
Last Date: 2020-11-01 23:59:59
Date: 2020-10-01 00:00:00
First Date: 2020-11-01 00:00:00
Last Date: 2020-12-01 23:59:59
Date: 2020-11-01 00:00:00
First Date: 2020-12-01 00:00:00
Last Date: 2021-01-01 23:59:59
Date: 2020-12-01 00:00:00
First Date: 2021-01-01 00:00:00
Last Date: 2021-02-01 23:59:59
Date: 2021-01-01 00:00:00
First Date: 2021-02-01 00:00:00
Last Date: 2021-03-01 23:59:59
Date: 2021-02-01 00:00:00
First Date: 2021-03-01 00:00:00
Last Date: 2021-04-01 23:59:59
Date: 2021-03-01 00:00:00
Die ersten beiden Bereiche werden korrekt berechnet -
jeweils der erste und letzte Tag des Monats - dann + 1 Monat.
Ab dem dritten Abschnitt wird aber jeweils an Stelle des letzten
Monatstages der erste Tag des daraufliegenden Monats an-
gezeigt.
Habe ich heir einen Fehler eingebunden?
VG,