2 つの日付を比較して 1 が別の日付よりも小さいかどうかを確認する次の while ループがあります。そうでない場合は、最初の日付に 1 週間追加します。
正常に動作しますが、日付の差が大きい場合 (つまり、12 か月以上) は、最大実行時間を過ぎているため、タイムアウト エラーが発生します。
これをより効率的にするのを手伝ってくれる人はいますか?
while($startDate->timestamp < $current_week->timestamp){
$data['weeks'][$w] = array(
'monday' => $startDate->startofWeek()->format('d/m/Y'),
'sunday' => $startDate->endofWeek()->format('d/m/Y')
);
$w++;
$startDate = $startDate->addDays(7); // Move it on to the following week
}
DateTime の Carbon API 拡張機能を使用していることを付け加えておきます。
ありがとう
- - 編集 - -
私には理解できない奇妙なことが起こっています。$startDate にハードコードされた日付を渡すと、2013-01-06 以降はすべて正常に (そして高速に) 動作しますが、この日付を過ぎるとすぐにタイムアウトになります。アイデアはありますか?