PHP制作万年历

编程入门 行业动态 更新时间:2024-10-16 22:21:19

PHP制作<a href=https://www.elefans.com/category/jswz/34/1766894.html style=万年历"/>

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>&nbsp</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>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</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>&nbsp</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>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</td><td>&nbsp</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>&nbsp</td>";}
?></tr></table>
</form>
</body>
</html>

 

更多推荐

PHP制作万年历

本文发布于:2024-03-14 23:53:22,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1737640.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:万年历   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!