万年历"/>
PHP制作万年历
预览图(当前时间为2018年9月13日)
首先要了解php对日期时间的处理
1.主要的三个函数
- echo date('Y-m-d'); //输入年月天,在这里需要注意Y必须要大写,m和d小写
- mktime(); //取得请求时间段的时间戳 语法为 int mktime(int $hour,int $minute,int $second,int $month,int $day,int $year); 从右向左可以省略
- checkdate(); //用于检查参数运算的年月日是否合法,在这里也要注意 Y 要大写
2.首先先写个html标签,再在body标签里面插入php代码
<?php
header("content-type:text/html;charset=utf-8");//检测用户是否提交数据
if(isset($_POST["year"])){//使用用户提交的数据作为年数据$year = $_POST["year"];
}else{$year = date('Y');
}
if(isset($_POST["month"])){$month = $_POST["month"];
}else{$month = date('m');
}//初始化月数据和日数据
$date=01;
$day=01;
$off=0;//检测年数据是否正确
if($year<0 or $year>9999){//如果数据不正确,显示错误信息,就返回上一页echo "<script> alert('年份应该在1-99之间');history.go(-1);</script>";exit();
}
//检测月数据是否正确
if($month<1 or $month>12){echo "<script> alert('月份应该在1-12之间');history.go(-1);</script>";exit();
}
while(checkdate($month,$date,$year)){$date++;
}?>
3.制作万年历的表头以及构建万年历的内容
<!--制作万年历表头-->
<form method="post" action="" name="calendar"><table width=100% border="1" cellpadding="2" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#EBEAEE" > <tr align="center" valign="middle"><td colspan="7" bgcolor="gray"><input type="text" name="year" size="4" maxlength="4" value="<?=$year?>"><input type="text" name="month" size="2" maxlength="2" value="<?=$month?>"><input type="submit" name="submit" align=absmilddle border=0 value="跳转"></td></tr><tr align="center" valign="middle"><td bgcolor="pink">日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td bgcolor="pink">六</td> </tr><tr>
<!-- 构建万年历内容 -->
<?phpwhile($day < $date){if($day == date("d")&& $year == date("Y") && $month == date("m")){$day_color="red";}else{$day_color="black";}if($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Sunday'){echo "<td><font color=$day_color>$day</font></td>";$off='01';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Monday'){echo "<td> </td>><td><font color=$day_color>$day</font></td>";$off='02';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Tuesday'){echo "<td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='03';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Wednesday'){echo "<td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='04';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Thursday'){echo "<td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='05';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Friday'){echo "<td> </td><td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='06';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Saturday'){echo "<td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='07';}else{echo "<td><font color=$day_color>$day</font></td> \n";}$day++;$off++;if($off>7){echo "<tr></tr>";$off=1;}else{echo "";}
}//计算剩下的数据,用空格补充for($i=$off;$i<=7;$i++){echo "<td> </td>";}
?>
在调试的时候看的就比较清楚了
调试的时候一步一步的来能使人更加的了解程序的运行,也更容易找到错误,以后要多多调试。
最后放上全部代码:
<!DOCTYPE html>
<html>
<head><title>万年历</title><meta http-equiv="Content-Type" content="text/html" charset="gb_2312">
<!--style--><style type="text/css">table{background-color: #b0c4de;}tr{background-color: white;}td{font-size: 20px;color: red;line-height: 140%;}</style>
<!--end-->
</head>
<body><?php
header("content-type:text/html;charset=utf-8");//检测用户是否提交数据
if(isset($_POST["year"])){//使用用户提交的数据作为年数据$year = $_POST["year"];
}else{$year = date('Y');
}
if(isset($_POST["month"])){$month = $_POST["month"];
}else{$month = date('m');
}//初始化月数据和日数据
$date=01;
$day=01;
$off=0;//检测年数据是否正确
if($year<0 or $year>9999){//如果数据不正确,显示错误信息,就返回上一页echo "<script> alert('年份应该在1-99之间');history.go(-1);</script>";exit();
}
//检测月数据是否正确
if($month<1 or $month>12){echo "<script> alert('月份应该在1-12之间');history.go(-1);</script>";exit();
}
while(checkdate($month,$date,$year)){$date++;
}?><!--制作万年历表头-->
<form method="post" action="" name="calendar"><table width=100% border="1" cellpadding="2" cellspacing="0" bordercolordark="#FFFFFF" bordercolorlight="#EBEAEE" > <tr align="center" valign="middle"><td colspan="7" bgcolor="gray"><input type="text" name="year" size="4" maxlength="4" value="<?=$year?>"><input type="text" name="month" size="2" maxlength="2" value="<?=$month?>"><input type="submit" name="submit" align=absmilddle border=0 value="跳转"></td></tr><tr align="center" valign="middle"><td bgcolor="pink">日</td><td>一</td><td>二</td><td>三</td><td>四</td><td>五</td><td bgcolor="pink">六</td> </tr><tr>
<!-- 构建万年历内容 -->
<?phpwhile($day < $date){if($day == date("d")&& $year == date("Y") && $month == date("m")){$day_color="red";}else{$day_color="black";}if($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Sunday'){echo "<td><font color=$day_color>$day</font></td>";$off='01';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Monday'){echo "<td> </td>><td><font color=$day_color>$day</font></td>";$off='02';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Tuesday'){echo "<td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='03';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Wednesday'){echo "<td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='04';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Thursday'){echo "<td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='05';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Friday'){echo "<td> </td><td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='06';}elseif($day=='01' and date('l',mktime(0,0,0,$month,$day,$year))=='Saturday'){echo "<td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td><font color=$day_color>$day</font></td>";$off='07';}else{echo "<td><font color=$day_color>$day</font></td> \n";}$day++;$off++;if($off>7){echo "<tr></tr>";$off=1;}else{echo "";}
}for($i=$off;$i<=7;$i++){echo "<td> </td>";}
?></tr></table>
</form>
</body>
</html>
更多推荐
PHP制作万年历
发布评论