• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP日历签到模块

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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{width: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;width: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 ><strong><?=$yearnow?>年 <?=$monthnow?>月</strong></div>
<?php echo $tabstr;?>
</div>


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php 代码运行时间查看类 - 圣者发布时间:2022-07-10
下一篇:
PHP在不同页面之间传值的三种常见方式发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap