主页 > 知识库 > PHP实现简单日历类编写

PHP实现简单日历类编写

热门标签:Linux服务器 电子围栏 阿里云 服务器配置 科大讯飞语音识别系统 Mysql连接数设置 团购网站 银行业务

用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实现简单日历类编写》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266