我正在使用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]++;
}
感谢。