预订日期计算

时间:2015-04-06 10:45:53

标签: php laravel

我正在使用PHP / Laravel开发一个简单的Web应用程序。这是一个预订系统,您可以在那里预订房间。单个房间,每个日期可以预订多次,让我们以5为例。在数据库上,我有一张房间桌子和一张预订桌子。显然,预订存储在预订表中,它们包含开始和结束日期。有了这两个日期,我正在计算他们预订的日期范围,所以我可以在日历中用不同的颜色标记它们:

<?php

foreach($room->bookings as $booking) :
    $start_date = new DateTime($booking->start_date);
    $end_date = new DateTime($booking->end_date);
    $end_date = $end_date->modify('+1 day');

    $interval = new DateInterval('P1D');
    $daterange = new DatePeriod($start_date, $interval, $end_date);

    foreach($daterange as $date) :

?>
        +new Date({{ $date->format("Y") }}, {{ $date->format("m") - 1 }}, {{ $date->format("d") }}), // This is javascript
<?php

    endforeach;

endforeach;

?>

不要混淆代码。 {{}}大括号用于输出PHP变量。根据我到目前为止所做的事情,我可以计算每次预订的start_end日期之间的日期,并在javascript插件中输出这些日期。

  

我想做的是计算哪些房间已经预订完毕(日期   被记录到极限,在这种情况下,我之前说过5次),和   哪些房间部分预订(约会时间为2或3次)。我怎么能够   将显示超过5次的日期输出到另一个   $booked_dates array

如果我设法做到这一点,另一部分会很容易。这是我尝试过的,使用来自另一个问题的变量变量(动态变量),但我无法将其成功地应用到我自己的代码中:

$repeated = array();
foreach($uid as $id){
    if (!isset($repeated[$id])) $repeated[$id] = -1;
    $repeated[$id]++;
}

感谢。

0 个答案:

没有答案