万年历

<!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" />
<title>万年历的实现</title>
</head>
<body>
<?php
 // 1.获取日期信息年和月(默认为当前的年和当前的月)
       $year=$_GET["y"]?$_GET["y"]:date("Y");
       $mon=$_GET["m"]?$_GET["m"]:date("m");
//2.计算出当前月有多少天和本月1号是星期几
         $day=date("t",mktime(0,0,0,$mon,1,$year));//获取当月对应的天数
       $w=date("w",mktime(0,0,0,$mon,1,$year));//获取当月1号是星期几
// 3.输出日期的头部信息(标题和表头)  
   echo"<center>";
   echo"<h1>{$year}年{$mon}月</h1>";
   echo"<table width='600' border='1'>";
   echo"<tr>";
   echo"<th style='color:red'>星期日</th>";
   echo"<th>星期一</th>";
   echo"<th>星期二</th>";
   echo"<th>星期三</th>";
   echo"<th>星期四</th>";
   echo"<th>星期五</th>";
   echo"<th style='color:green'>星期六</th>";
   echo"</tr>";
//4.循环遍历输出日期信息
   $dd=1;//定义一个循环的天数
   while($dd<=$day){
       echo"<tr>";
       //输出一周的信息
       for($i=0;$i<7;$i++){
           //当还没有到达该输出日期的时候,或已经日期溢出时,输出的都是空单元格
           if(($w>$i&&$dd==1)||$dd>$day){
              echo"<td>&nbsp;</td>";
           }else{
              echo"<td>{$dd}</td>";
              $dd++;
               }
           }
           echo"</tr>";
       }
       echo"</table>";
//5.输出上一月和下一月的超连接
        //处理上一月和下一月的信息
        $prey=$nexty=$year;
        $prem=$nextm=$mon;
        if($prem<=1){
            $prem=12;
            $prey--;
            }else{
                $prem--;
                }
        if($nextm>=12){
            $nextm=1;
            $nexty++;  
            }else{
                $nextm++;
                }

      //    $prem=$mon-1;
      //       $nextm=$mon+1;
       echo"<h3><a href='date.php?y={$prey}&m={$prem}' >上一月</a>&nbsp;&nbsp;&nbsp;&nbsp;"; 
       echo"<a href='date.php?y={$nexty}&m={$nextm}' >下一月</a></h3>";
       echo"</center>";   
?>
</body>
</html>

 

posted @ 2015-10-07 22:57  骏码信息  阅读(173)  评论(0编辑  收藏  举报