0

我想制作简单的 PHP 日历。例如:blog.tiger.com.pl/wp-content/uploads/2012/03/gcalendar.png 但仅限一天,对于这个例子:6/26。

我有:

$hours = range(1, 24);

和:

用 html 表显示这个时间:

<table>
<?php foreach($hours as $hour){ ?>
  <tr><td><?php echo $hour ?> </td></tr> 
<?php } ?>
</table>

我有:

$reservations = array(array('name' => 'first reservation for user Paul', 'from' => 6, 'to' => 8),
                     array('name' => 'second reservation for my group', 'from' => 11, 'to' => 14)  );

但我不知道如何添加$reservations到我的 foreach 中$hours。如果是预订,我希望在 6 到 8 小时和 11 到 14 小时以及 6 到 8 小时之间显示索引名称中的文本,以及 11 到 14 小时之间显示索引名称中的文本的红色背景。最好的方法是对该文本使用行跨度,但是如何?

4

1 回答 1

1

我会尝试设置一系列“忙碌时间”,如下所示:

(编辑以包含文本)

<?php 
$busyhours = array;
foreach ( $reservations as $reservation ) {
    $hours = $reservation['to'] - $reservation['from'];
    while ($hours) {
        $busyhours[] = $reservation['to'] + $hours;
        $hours--;
    }
    $busyhours[$reservation['to']] = $reservation['name']; //made the busy hour the key.
}
?>

<table>
    <?php foreach($hours as $hour){ ?>
        <tr><!-- changed in_array() to array_key_exists b/c of above change -->
            <td <?php if ( array_key_exists($hour, $busyhours) ) { echo "class='red-bg'"; } ?> >
                <?php 
                    echo $hour; 
                    echo "<p>" . $busyhours[$hour] . "</p>";
                ?> 
            </td>
        </tr> 
    <?php } ?>
</table>
于 2013-03-07T10:37:48.950 回答