次の問題についてあなたの助けが必要です。PHPを使用して、曜日を示すカレンダーを表示したいWebサイトを構築しています。各日は、3つのタイムスロットに分割されています。これらのタイムスロットは無料または予約済みのいずれかです。その場合、そのタイムスロットは選択できません。
これまでのところ良好ですが、問題は予約済みのタイムスロットを表示することにあります。開始日時と終了日時を示すスクリプトから予約データを取得しています。これらの日付/タイムスタンプは何でもかまいませんが、タイムスロット時間にバインドされていません。それらは同じ日にすることも、複数の日にまたがることもできます。タイムスロットは毎日同じです:9から13、13から17、および19から23時間。
たとえば、開始時刻が17-12-2012 13:00で、終了時刻が18-12-2012 11:00であるとすると、関数で次のような配列を取得できます。
array(1) {
["meetingroom1_booked"]=>
array(3) {
[0]=>
array(2) {
["day"]=>
string(10) "2012-12-17"
["timeslot"]=>
string(1) "2"
}
[1]=>
array(2) {
["day"]=>
string(10) "2012-12-17"
["timeslot"]=>
string(1) "3"
}
[2]=>
array(2) {
["day"]=>
string(10) "2012-12-18"
["timeslot"]=>
string(1) "1"
}
}
}
私はこれについて頭を悩ませてきましたが、開始と終了の時間が複数日にわたるという良い解決策を思い付くことができません。開始時刻と終了時刻が1日であるため、問題はありません。開始時刻と終了時刻をタイムスロット時間と比較できます。もちろん、これは複数日は機能しません。正しい方向へのポインタは大歓迎です!ありがとう!