我有PHP:
<?php
$columns = array('mon','thu','wed','tue', 'fri', 'sat', 'sun');
$num_cols = count($columns);
$col = 0;
$datetime = new DateTime("06:00");
echo "<table>"; // border=\"1\" for visible border
// Day header
echo "<tr>";
foreach($columns as $col) {
echo "<td at='$col'>$col</td>";
}
echo "</tr>";
// Times
for($i=0; $i<20; $i++) { // FIXME for more entries or other step width
echo "<tr>";
$datetime->modify('+30 minutes');
for ($j=0; $j<$num_cols; $j++)
echo '<td class="' . $datetime->format('H:i') . '">' . $datetime->format('H:i') . '</td>';
echo "</tr>";
}
echo "</table>";
?>
并在数据库MySQL中:
id | day | hours
1 | mon | 07:00
2 | thu | 08:40
3 | wed | 12:30
4 | thu | 13:00
5 | fri | 05:00
etc
检查此方法的最佳方法是什么?如果日期在数据库中,那么我想用红色背景制作TD,例如添加红色类:
echo "<td at='$col' class='red'>$col</td>";
在每个循环中检查这个是不是一个好主意 - 这生成了许多查询数据库。 我该怎么做?
如果可能的话,我也可以使用jquery和JSON。
答案 0 :(得分:1)
将它们全部列在一个键控数组中,然后在循环浏览日历时只需检查这些键。
例如,您将获得数组array(1 => array('07:00' => true))
(星期几=&gt;约会)。
然后,您可以查看isset($array[$datetime->format('N')][$datetime->format('H:i')])