DateIntervalオブジェクトを使用して月間をループしています。ただし、以下の次のコードを実行している場合:DateIntervalを使用して月間にループする場合のPHP DatePeriodエラー
$interval = new DateInterval('P1M');
$daterange = new DatePeriod('2017-08-01', $interval , '2017-10-01');
foreach($daterange as $d){
$start_date = $d->format("Y-m-d");
echo $start_date;
}
//Expected Output:
// 2017-08-01
// 2017-09-01
すると、次のエラーを与える:
Fatal error: Uncaught exception 'Exception' with message 'DatePeriod::__construct(): This constructor accepts either (DateTimeInterface, DateInterval, int) OR (DateTimeInterface, DateInterval, DateTime) OR (string) as arguments.' in C:.. Stack trace: #0 C:\..: DatePeriod->__construct('2017-08-01', Object(DateInterval), '2017-10-01') #1 {main} thrown in C:\..
はどうやって予想される出力を得ることができますか?
新しいDatePeriod 'の最初の引数は、()' 'DateTimeInterface'、ない文字列にする必要があります。 3番目の引数は文字列ではなく、 'int'または' DateTime'でなければなりません。 – Barmar
ドキュメントの最初の例を見て気になりましたか?それは正しく行う方法を示しています。 – Barmar