最近在做一个周课表,首先说下需求。周课表,顾名思义就是这一周的所有课程列表。时间呢,就是当前这一周的周一到周日。然后课程的安排呢有个开始时间,当天中有课程的就展示出相应的课程信息,没有的空着就OK。先来张效果图。
首先呢,先把本周的时间计算出来。
$timestr = time();
$now_day = date('w',$timestr);
//获取当前一周的时间
for ($i=1; $i <=7 ; $i++) {
$monday_str = $timestr + ($i-$now_day)*60*60*24;
$arr[] = date('Y-m-d', $monday_str);
}
$arrs=implode(',', $arr);
$all=$dosql->getAll("select * from je_curriculum_date d inner join je_curriculum_class c on d.tid = c.id where d.vid=60 and del=0 and day >=1557676800 and class_type=0 and day<=1558195200 order by star_time asc");
$new=array();
foreach($all as $v){
$new[$v["star_time"]][$v["wek"]]["curr"][]=$v;
}
$new1=array();
foreach($new as $k => $v){
for($i=1;$i<=7;$i++){
if(empty($v[$i])){
$new[$k][$i]=array();
}
}
}
foreach($new as $k => $v){
ksort($v);
$new1[$k]=$v;
}
// echo "<pre>";
// print_r($new1);
$smarty->assign('arr',$arr);
$smarty->assign('new1',$new1);
$smarty->display('aa.html');
前台页面
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>课表</title>
<link href="templates/default/css/kb.css" rel="stylesheet" type="text/css" />
</head>
<body style="max-width:900px;">
<div class="kb_body">
<div class="kb_body_n">
<div class="week_top1">
<div class="week_time">
<div class="week_1"></div>
<div class="week_day"><span>周一</span><span>{%$arr[0]%}</span></div>
<div class="week_day"><span>周二</span><span>{%$arr[1]%}</span></div>
<div class="week_day"><span>周三</span><span>{%$arr[2]%}</span></div>
<div class="week_day"><span>周四</span><span>{%$arr[3]%}</span></div>
<div class="week_day"><span>周五</span><span>{%$arr[4]%}</span></div>
<div class="week_day"><span>周六</span><span>{%$arr[5]%}</span></div>
<div class="week_day"><span>周日</span><span>{%$arr[6]%}</span></div>
</div>
</div>
<div class="week_table_o">
{%foreach from=$new1 item=vvv key=k%}
<div class="week_table_tr">
<div class="week_table_td1">{%$k%}</div>
<div class="week_table_tr2_tr">
{%foreach from=$vvv item=vv key=k%}
<div class="week_table_tr2_td">
{%if $vv['day_time'] eq $arrs%}
{%foreach from=$vv.curr item=v%}
<div class="week_table_td2 td2_hover" > <span class="ttd_time1">{%$v.star_time%}-{%$v.end_time%}</span> <span class="tdd_ck"> <b>{%$v.cuname%}</b> <span class="tdd_ck1">{%$v.cuname%}</span> <span class="tdd_ck1">{%$v.cuname%}</span> </span> </div>
{%/foreach%}
{%/if%}
</div>
{%/foreach%}
</div>
</div>
{%/foreach%}
</div>
</div>
</div>
</body>
</html>
说明:我这个是按照开始时间把一周的同一个时间段的数据查询出来的,也可以按照日期把这一天的所有时间段的数据查出来,两种做法。