预览图(当前时间为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>
<!-- 构建万年历内容 -->
<?php
while($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>
<!-- 构建万年历内容 -->
<?php
while($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>