calendar.class.php
<?php /* * 创建一个日历类 * * */ //修改默认时区 date_default_timezone_set(\"PRC\"); class Calendar { private $year; private $month; private $day; //当月总天数 private $first_week; //每月的第一天是星期几 //构造函数 function __construct() { $this->year = isset($_GET[\'year\'])?$_GET[\'year\']:date(\"Y\"); $this->month = isset($_GET[\"month\"])?$_GET[\"month\"]:date(\"m\"); $this->first_week = date(\"w\", mktime(0, 0 ,0, $this->month, 1, $this->year)); $this->day = date(\"t\", mktime(0, 0 ,0, $this->month, 1, $this->year)); } function showCalendar() { // echo $this->year.\"年\".$this->month.\"月\".$this->first_week.\"天\".$this->day; echo \"<table align=\'center\'>\"; //用表格输出 $this->chageDate(\"index.php\"); //用于用户调整年月份 $this->weekList();//显示星期 $this->dayList(); //显示天数 echo \"</table>\"; } //1、显示星期 private function weekList() { $week = array(\"日\",\"一\",\"二\",\"三\",\"四\",\"五\",\"六\"); echo \"<tr>\"; for ($i = 0; $i < count($week); $i++) { echo \"<th>\".$week[$i].\"</th>\"; } echo \"</tr>\"; } //2.显示天数 private function dayList() { $color = \"#2ca50c\"; echo \"<tr>\"; for ($i = 0; $i < $this->first_week; $i++) { //输出空格,弥补当前月空缺部分 echo \"<td bgcolor=\'#2ca50c\'> </td>\"; } for ($k = 1; $i <= $this->day; $k++) { $i++; if ($k == date(\"d\")) echo \"<td id=\'nowd\'>\".$k.\"</td>\"; //是今天,加效果 else echo \"<td bgcolor=$color>\".$k.\"</td>\"; if ($i % 7 == 0) { echo \"</tr><tr>\"; //每7天一次换行 if ($i % 2 == 0) $color = \"#2ca50c\"; else $color = \"#9ddb27\"; //实现各行换色的效果 } } while ($i % 7 != 0) { //将剩余的空格补完 echo \"<td bgcolor=\'#2ca50c\'> </td>\"; $i++; } echo \"</tr>\"; } //3、用于用户调整天数 private function chageDate($url=\"index.php\") { echo \"<tr>\"; echo \"<caption><h1>\".$this->year.\"年\".$this->month.\"月</h1></caption>\"; echo \"</tr>\"; echo \"<tr>\"; echo \"<td>\".\"<a href=\'?\".$this->prevYear($this->year,$this->month).\"\'>\".\"<\".\"</a>\"; echo \"<td>\".\"<a href=\'?\".$this->prevMonth($this->year,$this->month).\"\'>\".\"<<\".\"</a>\"; echo \"<td colspan=\'3\'>\"; echo \'<select οnchange=\"window.location=\\\'\'.$url.\'?year=\\\'+this.options[selectedIndex].value+\\\'&month=\'.$this->month.\'\\\'\">\'; for ($year = 2038; $year >= 1970; $year--) { $selected = ($year == $this->year)?\"selected\":\"\"; echo \'<option \'.$selected. \' value=\"\'.$year.\'\">\'.$year.\'</option>\'; //echo \'<option \'.$selected.\' value=\"\'.$year.\'\">\'.$year.\'</option>\'; } echo \"</select>\"; echo \'<select name=\"month\" οnchange=\"window.location=\\\'\'.$url.\'?year=\'.$this->year.\'&month=\\\'+this.options[selectedIndex].value\">\'; for($month=1;$month <= 12;$month++){ $selected1 = ($month == $this->month) ? \"selected\" : \"\"; echo \'<option \'.$selected1.\' value=\"\'.$month.\'\">\'.$month.\'</option>\'; } echo \'</select>\'; echo \"</td>\"; echo \"<td>\".\"<a href=\'?\".$this->nextMonth($this->year,$this->month).\"\'>\".\">>\".\"</a>\"; echo \"<td>\".\"<a href=\'?\".$this->nextYear($this->year,$this->month).\"\'>\".\">\".\"</a>\"; echo \"</tr>\"; } private function prevYear($year, $month) { //获取上一年的数据 $year--; if ($year < 1970) $year = 1970; return \"year={$year}&month={$month}\"; } private function prevMonth($year, $month) { if ($month == 1) { $year--; if ($year < 1970) $year = 1970; $month = 12; }else $month--; return \"year={$year}&month={$month}\"; } private function nextYear($year, $month) { //获取上一年的数据 $year++; if ($year > 2038) $year = 2038; return \"year={$year}&month={$month}\"; } private function nextMonth($year, $month) { if ($month == 12) { $year++; if ($year > 2038) $year = 2038; $month = 1; }else $month++; return \"year={$year}&month={$month}\"; } }
主页 index.php
<!doctype html> <html> <head> <meta charset=\"utf-8\"> <title>日历显示</title> <style> table { border:1px solid #050; margin: 100px auto; } th { width: 30px; background-color: #0CC; color: #fff; height: 30px; font-size: 20px; } #nowd { color: yellow; background: #F00; } td { width: 30px; text-align: center; height: 25px; color: #fff; } a { display: block; width: 35px; height: 35px; background: #0F9; text-decoration: none; text-align: center; line-height: 35px; } a:hover { background: #CF0; color: #fff; font-size: 20px; } </style> </head> <body> <?php include \"calendar.class.php\"; $ca = new Calendar(); $ca->showCalendar(); ?> </body> </html>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持自学编程网。