用PHP创建日历

时间:2011-05-06 12:14:53

标签: php html calendar

最近,有人非常友好地给了我一些代码来创建一个用HTML模拟日程表的表 - 下面是代码

    function make_row( $slot , array $list )
   {
      $output = '';
      $output .= '<tr><td>' . $slot . '</td>';
      for ( $i = 1; $i <= 7 ; $i++ )
      {
         $details = '&nbsp;';
         if ( isset($list[ $i ]) )
         {  
            $details = $list[ $i ];
         }
         $output .= '<td>' . $details . '</td>';
      }
      $output .= '</tr>';
      return $output;
   }

   $timeslot = '';
   $item = array();
   while ($eventrow = mysql_fetch_array($sqlevents)) 
   {
      $timeslot = $eventrow['PreferredStart'];
      $day = (int)$eventrow['idDay'];

      if ( !is_array( $item[ $timeslot ] ) )
      {
         $item[ $timeslot ] = array();
      }

      $item[ $timeslot ][ $day ] = $eventrow['EventDetails'];
   }

   foreach( $item as $slot => $list )
   {
      echo make_row( $slot, $list );
   }

但是,我的数据库表设置已更改。我现在有半小时的时段而不是全时的时段。该表正确呈现,但我试图确保如果有人进入约会,则整个块在日历中标记,而不仅仅是开始时间。有人可以帮我添加结束时间,以及中间的时间段吗?

非常感谢, 布雷特

1 个答案:

答案 0 :(得分:0)

如果不知道数据库结构或生成$sqlevents的sql查询,这很难回答,但看起来时间段只是直接从数据库中获取:

$timeslot = $eventrow['PreferredStart'];

您可以通过查找结束时间来更改此值(我假设在数据库中命名为PreferredEnd,但您显然必须自己检查,因为我不知道您的数据库架构)并添加两个在一起:

$timeslot_start = $eventrow['PreferredStart'];
$timeslot_end   = $eventrow['PreferredEnd'];   // I'm gonna assume this is right

$timeslot = $timeslot_start.'-'.$timeslot_end; // Make a new field combining both

现在你的$timeslot var应该包含开始和结束时间。