首页后端开发PHP用PHP怎样创建一个日历类,方法是什么?

用PHP怎样创建一个日历类,方法是什么?

时间2024-03-25 22:42:03发布访客分类PHP浏览906
导读:这篇文章主要介绍用PHP怎样创建一个日历类的内容,对大家学习PHP会有一定的帮助,下文示例代码具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。 calendar.class.php...

这篇文章主要介绍用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实现一个日历类的内容就介绍到这,本文代码仅供参考,感兴趣的朋友可以了解看看,希望能对大家有帮助,想要了解更多大家可以关注其它的相关文章。

文本转载自脚本之家

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 用PHP怎样创建一个日历类,方法是什么?
本文地址: https://pptw.com/jishu/653086.html
如何学习Java多线程机制,都有哪些知识点 用PHP怎样实现随机生成订单号的功能?

游客 回复需填写必要信息