PHP实现简单日历类编写

吾爱主题 阅读:114 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.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容