目前我只显示预订时间,但我现在正在寻找一种方法来显示预订时间之间的可用时间。这是我使用的标记。
$stmt = $pdo->prepare('SELECT * FROM bokningar WHERE frisor = :frisor AND datum = :datum ORDER BY datum, tid');
$stmt->execute(array(
':frisor' => $_GET['id'],
':datum' => $dag
));
while($row = $stmt->fetch()) {
echo goes here etc
}
对于每个$row都有一个$row['tid'](开始时间)和$row['tid_slut](结束时间)
这就是我希望它的样子:
07:00-10:00
Available
10:00-12:00
Booked
12:00-13:20
Booked
13:20-14:50
Available
14:50-18:00
Booked
例如。我将如何最简单的方法进行此操作?
提前感谢!
编辑:忘了添加开始时间(例如07:00):$arbetstider_idag[0]和结束时间的变量:$arbetstider_idag[1]
在循环内存储变量的结束时间。在下一次迭代中,比较当前开始时间和存储的结束时间。如果不同,则从头到尾的时间是免费的(因为否则它将在数据库中),因此从上端到当前开始的回显时间可用。
例:
$start_time = $arbetstider_idag[0];
$end_time = $arbetstider_idag[1];
while($row = $stmt->fetch()) {
if ($start_time != $row['tid'])
echo "{$start_time}-{$row['tid']}<br>Available<br><br>";
echo "{$row['tid']}-{$row['tid_slut']}<br>Booked<br><br>";
$start_time = $row['tid_slut'];
}
if ($row['tid_slut'] != $end_time)
echo "{$row['tid_slut']}-{$end_time}<br>Available<br><br>";