php日历制作代码分享


Posted in PHP onJanuary 20, 2014

 
php日历制作代码分享

calendar.class.php

 

 <?php
class Calendar {
  private $year; //当前的年
  private $month; //当前的月
  private $start_weekday; //当月的第一天对应的是周几
  private $days; //当前月一共多少天
  function __construct(){
   $this->year=isset($_GET["year"]) ? $_GET["year"] : date("Y");
   $this->month=isset($_GET["month"]) ? $_GET["month"] : date("m");
   $this->start_weekday=date("w", mktime(0, 0, 0, $this->month, 1, $this->year));
   $this->days=date("t", mktime(0, 0, 0, $this->month, 1, $this->year));
  }
  function out(){
   echo '<table align="center">';
   $this->chageDate("test.php");
   $this->weeksList();
   $this->daysList();
   echo '</table>';
  }
  private function weeksList(){
   $week=array('日','一','二','三','四','五','六');
   echo '<tr>';
   for($i=0; $i<count($week); $i++)
    echo '<th class="fontb">'.$week[$i].'</th>';
   echo '</tr>';
  }
  private function daysList(){
   echo '<tr>';
   //输出空格(当前一月第一天前面要空出来)
   for($j=0; $j<$this->start_weekday; $j++)
    echo '<td> </td>';

   for($k=1; $k<=$this->days; $k++){
    $j++;
    if($k==date('d'))
     echo '<td class="fontb">'.$k.'</td>';
    else
     echo '<td>'.$k.'</td>';
    if($j%7==0)
     echo '</tr><tr>';
   }
   //后面几个空格
   while($j%7!==0){
    echo '<td> </td>';
    $j++;
   }
   echo '</tr>';
  }
  private function prevYear($year, $month){
   $year=$year-1;
   if($year < 1970)
    $year = 1970;
   return "year={$year}&month={$month}"; 
  }

  private function prevMonth($year, $month){
   if($month == 1) {
    $year = $year -1;
    if($year < 1970)
     $year = 1970;
    $month=12;
   }else{
    $month--;
   }
   return "year={$year}&month={$month}"; 
  }

  private function nextYear($year, $month){
   $year = $year + 1;
   if($year > 2038)
    $year = 2038;
   return "year={$year}&month={$month}"; 
  }

  private function nextMonth($year, $month){
   if($month==12){
    $year++;
    if($year > 2100)
     $year=2100;
    $month=1;
   }else{
    $month++;
   }
   
   return "year={$year}&month={$month}"; 
  }
  private function chageDate($url=""){
   echo '<tr>';
   echo '<td><a href="?'.$this->prevYear($this->year, $this->month).'">'.'<<'.'</a></td>';
   echo '<td><a href="?'.$this->prevMonth($this->year, $this->month).'">'.'<'.'</a></td>';
   echo '<td colspan="3">';
   echo '<form>';
   echo '<select name="year" onchange="window.location=\''.$url.'?year=\'+this.options[selectedIndex].value+\'&month='.$this->month.'\'">';
   for($sy=1970; $sy <= 2100; $sy++){
    $selected = ($sy==$this->year) ? "selected" : "";
    echo '<option '.$selected.' value="'.$sy.'">'.$sy.'</option>';
   }
   echo '</select>';
   echo '<select name="month"  onchange="window.location=\''.$url.'?year='.$this->year.'&month=\'+this.options[selectedIndex].value">';
   for($sm=1; $sm<=12; $sm++){
    $selected1 = ($sm==$this->month) ? "selected" : "";
    echo '<option '.$selected1.' value="'.$sm.'">'.$sm.'</option>';
   }
   echo '</select>';
   echo '</form>'; 
   echo '</td>';

   echo '<td><a href="?'.$this->nextYear($this->year, $this->month).'">'.'>>'.'</a></td>';
   echo '<td><a href="?'.$this->nextMonth($this->year, $this->month).'">'.'>'.'</a></td>';
   echo '</tr>';
  }
 }
?>
 

 test.php

 

 <style>
 table {
  border:1px solid #050;
 }
 .fontb {
  color:white;
  background:blue;
 }
 
 th {
  width:30px;
 }
 td,th {
  height:30px;
  text-align:center;
 }
 form {
  margin:0px;
  padding:0px;
 }
</style>
<?php
 include "calendar.class.php";
 $calendar=new Calendar;
 $calendar->out();
?>
 
PHP 相关文章推荐
PHP新手上路(十一)
Oct 09 PHP
批量修改RAR文件注释的php代码
Nov 20 PHP
zf框架的db类select查询器join链表使用示例(zend框架)
Mar 14 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php在linux下检测mysql同步状态的方法
Jan 15 PHP
PHP中使用Imagick实现各种图片效果实例
Jan 21 PHP
MySql数据库查询结果用表格输出PHP代码示例
Mar 20 PHP
php实现用于计算执行时间的类实例
Apr 18 PHP
WordPress网站性能优化指南
Nov 18 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
Nov 03 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
May 10 PHP
PHP levenshtein()函数用法讲解
Mar 08 PHP
php使用qr生成二维码的示例分享
Jan 20 #PHP
php利用新浪接口查询ip获取地理位置示例
Jan 20 #PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 #PHP
php生成缩略图示例代码分享(使用gd库实现)
Jan 20 #PHP
php解析url的三个示例
Jan 20 #PHP
使用php伪造referer的方法 利用referer防止图片盗链
Jan 20 #PHP
php fsockopen解决办法 php实现多线程
Jan 20 #PHP
You might like
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
一个完整的PHP类包含的七种语法说明
2015/06/04 PHP
php短信接口代码
2016/05/13 PHP
php连接oracle数据库的方法(测试成功)
2016/05/26 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jquery二级导航内容均分的原理及实现
2013/08/13 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
如何用jquery控制表格奇偶行及活动行颜色
2014/04/20 Javascript
JavaScript实现找出数组中最长的连续数字序列
2014/09/03 Javascript
Javascript 读取操作Sql中的Xml字段
2014/10/09 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
HTML5实现留言和回复页面样式
2015/07/22 Javascript
自己封装的一个简单的倒计时功能实例
2016/11/23 Javascript
JS声明式函数与赋值式函数实例分析
2016/12/13 Javascript
js 函数式编程学习笔记
2017/03/25 Javascript
jQuery实现手势解锁密码特效
2017/08/14 jQuery
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
jQuery UI实现动画效果代码分享
2018/08/19 jQuery
Python多进程编程技术实例分析
2014/09/16 Python
Django管理员账号和密码忘记的完美解决方法
2018/12/06 Python
Python paramiko模块使用解析(实现ssh)
2019/08/30 Python
使用Python实现牛顿法求极值
2020/02/10 Python
python如何运行js语句
2020/09/09 Python
HTML5之SVG 2D入门7—SVG元素的重用与引用
2013/01/30 HTML / CSS
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
建筑专业毕业生推荐信
2013/11/21 职场文书
中式餐厅创业计划书范文
2014/01/23 职场文书
创业计划书的写作技巧及要点
2014/01/31 职场文书
公务员转正考察材料
2014/02/07 职场文书
网页美工求职信范文
2014/04/17 职场文书
聘用意向书
2014/07/29 职场文书
学生会竞选演讲稿纪检部
2014/08/25 职场文书
新闻通讯稿范文
2015/07/22 职场文书
vue+spring boot实现校验码功能
2021/05/27 Vue.js
mysql中between的边界,范围说明
2021/06/08 MySQL