2013-03-07 67 views
0

我想簡單的PHP日曆。 例如:blog.tiger.com.pl/wp-content/uploads/2012/03/gcalendar.png 但是隻有一天,例如:6/26。簡單的PHP日曆

我:

$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) ); 

但我不t知道如何添加$reservations我的foreach與$hours。如果是保留,我希望從6到8和11到14以及6和8之間顯示來自索引名稱的文本的紅色背景,11到14之間顯示來自索引名稱的文本。最好的方法是使用這個文本的rowspan,但是怎麼做?

+1

的谷歌日曆犯規的符合一個'簡單的日曆上的圖像'。在一個特定的小時內是否可以有多個事件?還是隻是保留了? – 2013-03-07 10:28:25

+1

您可能需要的小時數爲0到23,而不是1到24.在您的foreach($ hours as $ hour)中,您需要遍歷'$ reservations'並檢查預留是否與小時匹配,如果是,添加'​​'並使用HTML(或CSS)爲背景着色。如果不是,你仍然需要一個'​​' – Mawg 2013-03-07 10:29:13

回答

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> 
+0

emoty謝謝,但我怎麼能爲此添加文本? – 2013-03-07 10:43:26

+0

我做了一些改變,我認爲這會工作:) – Bill 2013-03-07 11:00:02