周课表

本文介绍如何制作周课表,需求包括显示一周内从周一到周日的课程安排。根据课程的开始时间,展示相应时间段的课程信息。首先计算本周时间范围,然后展示前端页面设计,讨论按照开始时间或日期查询数据的两种实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在做一个周课表,首先说下需求。周课表,顾名思义就是这一周的所有课程列表。时间呢,就是当前这一周的周一到周日。然后课程的安排呢有个开始时间,当天中有课程的就展示出相应的课程信息,没有的空着就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>

说明:我这个是按照开始时间把一周的同一个时间段的数据查询出来的,也可以按照日期把这一天的所有时间段的数据查出来,两种做法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值