一个简单实现的日历,我不知道这段代码实现的方法有没有问题,没有参考前辈,等你理解我的烂代码之后,再欣赏一下别人的优秀代码,会更有帮助
- #calendardiv,#calendar{width:252px;}
- #cal_title{height:33px;line-height:33px;text-align:center;overflow:hidden;}
- #cal_title strong{font-weight:bold;font-size:14px; }
- #cal_title a{font-weight:bold;font-size:14px;text-decoration:none;}
- #calendar{border-collapse:collapse;}
- #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;
- }
- #calendar .even td{background-color:#e6e6e6;}
- #calendar td .current{display:block;background-color:#f60;color:#fff;}
- #calendar .current{background-color:#f60!important;color:#fff;}
- #week td{color:#fff;background-color:#373737;}
- $date = isset($_GET['d']) ? intval($_GET['d']) : '';
- if($date)
- {
- $y = substr($date,0,4);
- $m = substr($date,4,2);
- $cur = mktime(0,0,0,$m,1,$y);
- }
- else
- {
- $cur = mktime();
- }
- list($year,$month,$day) = explode('-',date('Y-m-d',$cur));//年月日
- $p = date('Ym',strtotime('last months',$cur));//前一月
- $n = date('Ym',strtotime('next months',$cur));//后一月
- $t = date('t',$cur); //当月多少天
- $s = date('w',mktime(0,0,0,$month,1,$year)); //前补空白
- $e = 6-(date('w',mktime(0,0,0,$month,$t,$year)));//后补空白
- ?>
日 | 一 | 二 | 三 | 四 | 五 | 六 |
- echo '
';
- for($i=0;$i<$s;$i++)
- {
- echo '
| ';
- }
- for($d=1;$d<=$t;$d++)
- {
- $current=$d==$day?'class="current"':'';//当前样式
- $r = ($d+$s)%7;//换行
- echo "
$d | ";
- if($r==0)
- {
- echo '
';
- echo '
';
- }
- }
- for($i=0;$i<$e;$i++)
- {
- echo '
| ';
- }
- ?>
复制代码
|