• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    PHP实现简单日历类编写

    用PHP实现日历类的编写,供大家参考,具体内容如下

    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>

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • PHP实现的简单日历类
    • 一个比较不错的PHP日历类分享
    • PHP完整的日历类(CLASS)
    上一篇:PHP实现文件上传与下载
    下一篇:PHP number_format函数原理及实例解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP实现简单日历类编写 PHP,实现,简单,日历,类,编写,