一个简单实现的日历,我不知道这段代码实现的方法有没有问题,没有参考前辈,等你理解我的烂代码之后,再欣赏一下别人的优秀代码,会更有帮助
- $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)));//后补空白
- ?>
- " title="上一月">« =$year?>年=$month?>月 " title="下一月">»
日 | 一 | 二 | 三 | 四 | 五 | 六 | - 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 '
| '; - }
- ?>
|