使用PHP制作一个简单的万年历
1、使用PHP制作日历的思路
- 制作一个选择下拉列表框,实现对选择年月的判断;
- 显示当前时间,并制作日历的头部;
- new一个Calendar类,实现获取日历的边界值、计算日历的天数与样式、画日历的样式;
- 设置样式;
2、实现的功能
- 选择指定的年月时,可以输出当前月的日历;
- 设置了日历样式,不属于本月的日期会低亮显示;
- 休息日区别工作日,并且当鼠标滑过时,会显示背景颜色;
3、实现的过程
源码如下
index.php
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf 8">
<title>PHP日历</title>
<link rel="stylesheet" href="style.css" type="text/css"/>
</head>
<body>
<form method="post">
<?php
/**
* 获取请求的年份和月份
*/
error_reporting(E_ALL & ~E_NOTICE); //除去 E_NOTICE 之外的错误信息
require_once 'calendar.php';
//new一个calendar类
$util=new Calendar();
//年份数组和月份数组
$years=array(2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019,2020);
$months=array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
//获取选择的年份
//如果没有提交POST请求,则返回当年年份,否则,返回选择的年份
if(empty($_POST['array_years'])){
$year=date("Y");
}else{
$year=$_POST["array_years"];
}
//如果没有提交POST请求,则返回当前月份,否则,返回选择的月份
if(empty($_POST['array_months'])){
$month=date("n");
}else{
$month=$_POST["array_months"];
}
$calendar = $util->threshold($year, $month);//获取各个边界值
$caculate = $util->caculate($calendar);//计算日历的天数与样式
$draws = $util->draw($caculate);//画表格,