zoukankan      html  css  js  c++  java
  • PHP 日历签到模块

    Create Table

    CREATE TABLE `tb_signinfo` (
    `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '记录每条签到详情',
    `memberID` int(11) DEFAULT NULL COMMENT '关联member表ID',
    `signdate` int(8) DEFAULT NULL COMMENT '记录签到日期,格式:年月日',
    `credit` int(255) DEFAULT NULL COMMENT '记录每次签到所赠送的积分值',
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8

    <style type="text/css">
    #tc_calendar{100%;}
    #tc_title{height:33px;line-height:33px;text-align:right;overflow:hidden;}
    #tc_title strong{font-weight:bold;font-size:14px;}
    #tc_calendar{border-collapse:collapse;}
    #tc_calendar td{text-align:center;35px;height:20px;line-height:20px;background-color:#efefef;border-bottom:1px solid #fff;border-right:1px solid #fff;}
    #tc_calendar .even td{background-color:#e6e6e6;}
    #tc_calendar td .current2{display:block;background-color:#f60;color:#fff;}
    #tc_calendar .current{background-color:#cf0!important;color:#000;}
    #tc_calendar .current2{background-color:#f60!important;color:#000;}
    #tc_week td{color:#fff;background-color:#373737;}
    </style>
    <?php
    $mdays=date("t"); //当月总天数
    $datenow=date("j"); //当日日期
    $monthnow=date("n"); //当月月份
    $yearnow=date("Y"); //当年年份
    //计算当月第一天是星期几
    $wk1st=date("w",mktime(0,0,0,$monthnow,1,$yearnow));
    $trnum=ceil(($mdays+$wk1st)/7); //计算表格行数
    //以下是表格字串
    $tabstr="<table id=tc_calendar><tr id=tc_week><td>日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td>六</td></tr>";
    for($i=0;$i<$trnum;$i++) {
    $tabstr.="<tr class="even">";
    for($k=0;$k<7;$k++) { //每行七个单元格
    $tabidx=$i*7+$k; //取得单元格自身序号
    //若单元格序号小于当月第一天的星期数($wk1st)或大于(月总数+$wk1st)
    //只填写空格,反之,写入日期
    ($tabidx<$wk1st or $tabidx>$mdays+$wk1st-1) ? $dayecho="&nbsp" : $dayecho= $tabidx-$wk1st+1;
    //拼装年月日
    if($monthnow<10){$m = "0".$monthnow;}else{$m = $monthnow;};
    if($dayecho<10){$d = "0".$dayecho;}else{$d = $dayecho;};
    $ymd = $yearnow.$m.$d;
    //拼装后的日期信息与数据库做比对。 数据库日期格式20150611
    //我这里使用的是CI框架。
    $sql = "select signdate from tb_signinfo where signdate='".$ymd."'";
    $result = $this->db->query($sql)->num_rows;
    if($result != 0){
    $todaybg = " class="current2"";
    }
    else
    {
    $todaybg = "";
    }
    //这里突出标明今日日期 与上面的签到显示代码是重复的,如果需要两种效果同时实现,自行处理判断语句即可
    /*if($dayecho==$datenow){
    $todaybg = " class="current2"";
    }
    else
    {
    $todaybg = "";
    }*/
    $tabstr.="<td".$todaybg.">$dayecho</td>";
    }
    $tabstr.="</tr>";
    }
    $tabstr.="</table>";
    ?>
    <div id="tc_calendardiv"><div id="tc_title"><strong><?=$yearnow?>年 <?=$monthnow?>月</strong></div>
    <?php echo $tabstr;?>
    </div>

  • 相关阅读:
    向多页TABLE中插入数据时,新增行总是在当前页的最后一行
    本地Run Page时报检测到意外的 URL 参数,它将被忽略。
    本地Jdev Run PG报严重: Socket accept failed错误
    手动编译JAVA类
    动态创建OATipBean
    OAF TABLE中第一列添加事件不生效
    QML的Window与ApplicationWindow
    android studio快捷键
    Android Studio报错view is not constrained
    自定义信号
  • 原文地址:https://www.cnblogs.com/wildmonk3y/p/4569800.html
Copyright © 2011-2022 走看看