2013-03-07 3 views
0

Я хотел бы сделать простой PHP Calendar. Например: blog.tiger.com.pl/wp-content/uploads/2012/03/gcalendar.png Но только на один день для этого примера: 6/26.Easy PHP Calendar

у меня есть:

$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

Изображение Календаря Google оленьей кожи выполнять с 'простого календарем '. Может ли быть более одного события в определенный час или просто зарезервировано или нет? –

+1

Вы, вероятно, хотите, чтобы часы составляли от 0 до 23, а не от 1 до 24. В вашем 'foreach ($ hours as $ hour)' вам нужно зациклиться на '$ reservations' и проверить, соответствует ли время ожидания часу, добавьте '' и используйте HTML (или CSS), чтобы покрасить фон. Если нет, вам все равно нужен эмоциональный '' – Mawg

ответ

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

спасибо, но как я могу добавить текст для этого? –

+0

Я внес некоторые изменения, я думаю, что это сработает :) – Bill