【发布时间】:2019-09-05 01:41:19
【问题描述】:
im 试图创建一个班级调度表,我想从可能的结果集中绘制时间表以创建一个表格表示。
我有一个固定的标题或天 MONDAY-SATURDAY 在顶部和 7:00 AM-9:00 pm 在表格的左侧。
$scheduledet = json_decode(json_encode($data['scheduledet']), true);
print_r($scheduledet);
$week_days = array('M','T','W','TH','F','S');
$range=range(strtotime("07:00"),strtotime("22:00"),30*60);
$rowspan = 0;
$rangetime = [];
foreach($range as $time){
$rangetime[] = date("H:i",$time);
}
foreach($week_days as $key => $wday){
$schedfortheday = array_filter($scheduledet, function ($item) use ($wday) {
if ($item['day'] == $wday) {
return true;
}
return false;
});
foreach ($schedfortheday as $key => $value) {
$rowspan = 0;
$count = 1;
foreach ($rangetime as $k => $v) {
if(strtotime($v) >= strtotime($value['fromtime']) && strtotime($v) <= strtotime($value['totime'])){
$rowspan ++;
}
}
}
}
<table border="2" style= "width:100%; margin: 0 auto;" cellpadding="0" cellspacing="0">
<tr>
<th scope="col"> </th>
<th scope="col">Monday</th>
<th scope="col">Tuesday</th>
<th scope="col">Wednesday</th>
<th scope="col">Thursday</th>
<th scope="col">Friday</th>
<th scope="col">Saturday</th>
</tr>
<tr>
<td>7:00 AM</td>
</tr>
<tr>
<td>7:30 AM</td>
</tr>
<tr>
<td>8:00 AM</td>
</tr>
<tr>
<td>8:30 AM</td>
</tr>
<tr>
<td>9:00 AM</td>
</tr>
<tr>
<td>9:30 AM</td>
</tr>
<tr>
<td>10:00 AM</td>
</tr>
<tr>
<td>10:30 AM</td>
</tr>
<tr>
<td>11:00 AM</td>
</tr>
<tr>
<td>11:30 AM</td>
</tr>
<tr>
<td>12:00 PM</td>
</tr>
<tr>
<td>12:30 PM</td>
</tr>
<tr>
<td>1:00 PM</td>
</tr>
<tr>
<td>1:30 PM</td>
</tr>
<tr>
<td>2:00 PM</td>
</tr>
<tr>
<td>2:30 PM</td>
</tr>
<tr>
<td>3:00 PM</td>
</tr>
<tr>
<td>3:30 PM</td>
</tr>
<tr>
<td>4:00 PM</td>
</tr>
<tr>
<td>4:30 PM</td>
</tr>
<tr>
<td>5:00 PM</td>
</tr>
<tr>
<td>5:30 PM</td>
</tr>
<tr>
<td>6:00 PM</td>
</tr>
<tr>
<td>6:30 PM</td>
</tr>
<tr>
<td>7:00 PM</td>
</tr>
<tr>
<td>7:30 PM</td>
</tr>
<tr>
<td>8:00 PM</td>
</tr>
<tr>
<td>8:30 PM</td>
</tr>
<tr>
<td>9:00 PM</td>
</tr>
</table>
Array(Array
(
'id' => '4545',
'classid' => '1842',
'fromtime' => '09:30:00',
'totime' => '11:30:00',
'day' => 'M',
'room' => 'B01',
'code' => 'BCS 1',
'subdesc' => 'IT APPLICATION TOOLS IN BUSINESS',
'units' => '3'
), Array(
'id' => '4460',
'classid' => '1596',
'fromtime' => '10:30:00',
'totime' => '11:30:00',
'day' => 'M',
'room' => '122A',
'code' => 'PS 101',
'subdesc' => 'FUNDAMENTALS OF POLITICAL SCIENCE',
'units' => '3'
),Array
(
'id' => '4463',
'classid' => '1598',
'fromtime' => '13:00:00',
'totime' => '14:00:00',
'day' => 'M',
'room' => 'TBA',
'code' => 'PSOE 1',
'subdesc' => 'PHILIPPINE POLITICAL THOUGHT',
'units' => '3'
),Array(
'id' => '3881',
'classid' => '1597',
'fromtime' => '14:00:00',
'totime' => '15:00:00',
'day' => 'M',
'room' => 'TBA',
'code' => 'PS 102',
'subdesc' => 'INTRODUCTION TO PHILIPPINE POLITICS AND GOVERNANCE',
'units' => '3'
),Array(
'id' => '4540',
'classid' => '1609',
'fromtime' => '16:00:00',
'totime' => '17:00:00',
'day' => 'M',
'room' => '205',
'code' => 'CFE 3',
'subdesc' => 'CATHOLIC FOUNDATION OF MISSION',
'units' => '3'
))
这是我的结果集中的计划数组,如果有冲突计划,它将重叠每个行跨并显示冲突计划的信息。我无法在表格中绘制结果集。任何帮助将不胜感激提前感谢
它允许计划重叠,并且仍将在表格中显示为合并的表格单元格。带有红色单元格的图像表示 2 个对象发生冲突且日程相同
【问题讨论】:
-
您的问题不清楚。说清楚!
-
我添加了我想要的结果的图像
-
仅仅向我们展示您想要的,是不够的。到目前为止,我还没有看到任何实际上会动态创建表的代码,那在哪里?您正在确定一些 $rowspan 值 - 很好,之后您 用该值做什么?
-
我很想提供更多代码,但我真的坚持了好几天,想知道如何在表格中动态显示它
-
为什么不在fullcalendar.io中使用像fullcalendarjs这样的javascript库