これで、複数の項目に対して開始日時と終了日時が設定されています。お互いに同じ日時の中に3つ以上のアイテムがあるかどうかを調べる必要があります。私はちょうど私がこの機能を使用して配列に、個々の項目の日数を取得することができ、この1のまわりで私の頭をラップすることはできません複数の日付範囲をチェックして、同じ日が3回以上あるかどうかを調べる必要があります。
function getDatesBetween2Dates($startTime, $endTime) {
$day = 86400;
$format = 'm/d/y g:i A';
$startTime = strtotime($startTime);
$endTime = strtotime($endTime);
$numDays = round(($endTime - $startTime)/$day) + 1;
$days = array();
for ($i = 0; $i < $numDays; $i++) {
$days[] = date($format, ($startTime + ($i * $day)));
}
return $days;
}
問題がある
は、それだけで最初の時間を取得し、ちょうど丸一日が追加されますその後は毎日です。最後の日の時間は考慮されません。私はこれを行う効率的な方法を考えることができません。
明確にするために、例を挙げておきます。私は自分のテーブルに5つのアイテムを持っています、彼らはそれぞれdatetime range ... startとendを持っています。私は、それらのアイテムのうちの4つ以上のアイテムが同じ日付範囲内にあるかどうかをチェックする必要があります。誰かが私を正しい方向に向けることができますか?ありがとう。
forループにif文を追加して、最後の日であるかどうかを確認することで、最後の日の時刻を取得することができました。 – John