2

我想以表格的形式创建一个时间列表,从上午 9 点到晚上 9 点,以 30 分钟为间隔。对于我安排活动的每个间隔,我希望单元格为红色,而对于房间空闲的单元格,我希望它们为绿色。

到目前为止,我只能列出房间的使用时间,但我需要在绿色框中填写可用时间。到目前为止,这是我的代码。:

foreach ($events[$event_day] as $event) {

    $meetstatus = $event['status'];
    $start = $event['time1'];
    $end = $event['time2'];

    $tStart = strtotime($start);
    $tEnd = strtotime($end);
    $tNow = $tStart;
    if ($event['roomchoice'] == 'Meeting Room') {
        while ($tNow <= $tEnd) {
            $time = date("H:iA", $tNow) . "\n";
            $calendar .= '<tr><td class="meeting-' . $meetstatus . '">' . $time . '</td></tr>';
            $tNow = strtotime('+30 minutes', $tNow);
        }
    }
}
4

1 回答 1

0

我知道您可能有比事件更多的间隔。如果这是真的,你的外循环需要间隔而不是事件:

$strintervalstarts=array('9:00','9:30',...)
foreach ($strintervalstarts as $strintervalstart) {
  $intervalstart=strtotime($strintervalstart);
  $intervalend=...

...需要替换为您的代码

我相信,从那里开始很容易。但是,您可能需要更多提示:

  • http://php.net/manual/de/function.date-add.php(日期,生成时间来计算间隔结束)
  • 如果您的颜色编码是关于“此事件完全在一个区间内”或“该事件触及区间,但超过它(部分重叠)”,您需要自己定义
  • > 根据您的决定,您需要一个 if 将 $tStart 与 $intervalstart 相关,将 $tEnd 与 $intervalend 相关
于 2013-10-02T09:41:11.147 回答