0

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 以降はすべて正常に (そして高速に) 動作しますが、この日付を過ぎるとすぐにタイムアウトになります。アイデアはありますか?

4

1 に答える 1