我不知道这个问题的正确标题。如果我没有添加适当的标题,请帮我编辑这个问题。
我正在尝试为活动预订大厅空间。空间预订分为三种类型:
Full - 0 (Can book by one team at same time)
Half - 1 (Can book by 2 team at same time)
Shared - 2 (Can book by 4 teams at same time)
所以,我写了下面提到的代码。
<?php
$obj0 = new stdClass();
$obj0->id = '1';
$obj0->start = '2019-06-28';
$obj0->end = '2019-06-28';
$obj0->start_time = '07:00:00';
$obj0->end_time = '08:00:00';
$obj0->hall_space = '1';
$obj1 = new stdClass();
$obj1->id = '7';
$obj1->start = '2019-06-28';
$obj1->end = '2019-06-28';
$obj1->start_time = '06:00:00';
$obj1->end_time = '07:00:00';
$obj1->hall_space = '1';
$obj2 = new stdClass();
$obj2->id = '2';
$obj2->start = '2019-06-29';
$obj2->end = '2019-06-29';
$obj2->start_time = '07:00:00';
$obj2->end_time = '08:00:00';
$obj2->hall_space = '1';
$obj3 = new stdClass();
$obj3->id = '8';
$obj3->start = '2019-06-29';
$obj3->end = '2019-06-29';
$obj3->start_time = '06:00:00';
$obj3->end_time = '07:00:00';
$obj3->hall_space = '1';
$obj4 = new stdClass();
$obj4->id = '3';
$obj4->start = '2019-06-30';
$obj4->end = '2019-06-30';
$obj4->start_time = '07:00:00';
$obj4->end_time = '08:00:00';
$obj4->hall_space = '1';
$obj5 = new stdClass();
$obj5->id = '9';
$obj5->start = '2019-06-30';
$obj5->end = '2019-06-30';
$obj5->start_time = '06:00:00';
$obj5->end_time = '07:00:00';
$obj5->hall_space = '1';
$data = array($obj0, $obj1, $obj2, $obj3, $obj4, $obj5);
$hall_space = 1; //this means user is trying to book half space
这对于单个事件(即非重复)工作正常。但是,对于重复事件,这不能正常工作。
在这里,在这种情况下,用户试图预订半空间(即值 1)的日期2019-06-28to 2019-06-30from 6 am to 8am。
上面提到的$data代表该时间范围内所有已预订的事件,这意味着每天有两个半间隔事件(一个从早上 6 点到 7 点,另一个从早上 7 点到 8 点)。这意味着应该允许预订这个新事件(半间隔)。
但是,我的逻辑不起作用,因为它正在考虑所有这些事件,因为它们将在相同的日期和时间举行。这意味着,$half仅当事件发生在相同的日期和时间时才应增加变量,并且最终不应产生错误。
我试图从我的角度解释所有内容,您也可以复制并粘贴代码进行测试。如果您需要更多详细信息,请告诉我。
牧羊人nacy