简单的PHP日历

时间:2013-03-07 10:23:50

标签: php html

我想制作简单的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$hours添加到我的foreach中。如果是预约,我希望红色背景从6到8和11到14以及从6到8之间显示来自索引名称的文本,以及11到14之间显示来自索引名称的文本。最好的方法是使用rowspan这个文本,但是怎么做?

1 个答案:

答案 0 :(得分: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>