PHP实现简单日历类编写
吾爱主题
阅读:120
2021-10-25 14:12:00
评论:0
用PHP实现日历类的编写,供大家参考,具体内容如下
calendar.class.php
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 | <?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
?1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | <!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 > |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/shofe11/article/details/37594187
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。