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 开发工具
Dec 06 PHP
php正则校验用户名介绍
Jul 19 PHP
使用php shell命令合并图片的代码
Jun 23 PHP
PHP比你想象的好得多
Nov 27 PHP
php实现html标签闭合检测与修复方法
Jul 09 PHP
php设置页面超时时间解决方法
Sep 22 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 PHP
Laravel与CI框架中截取字符串函数
May 08 PHP
微信支付的开发流程详解
Sep 13 PHP
PHP基于接口技术实现简单的多态应用完整实例
Apr 26 PHP
thinkPHP框架实现的简单计算器示例
Dec 07 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
ADODB类使用
2006/11/25 PHP
XAMPP安装与使用方法详细解析
2013/11/27 PHP
深入浅析yii2-gii自定义模板的方法
2016/04/26 PHP
PHP获取MySQL执行sql语句的查询时间方法
2018/08/21 PHP
php获取微信基础接口凭证Access_token
2018/08/23 PHP
php设计模式之代理模式分析【星际争霸游戏案例】
2020/03/23 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
基于Jquery的动态创建DOM元素的代码
2010/12/28 Javascript
JavaScript中操作字符串之localeCompare()方法的使用
2015/06/06 Javascript
JavaScript 消息框效果【实现代码】
2016/04/27 Javascript
JS未跨域操作iframe里的DOM
2016/06/01 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
浅谈react-native热更新react-native-pushy集成遇到的问题
2017/09/30 Javascript
Express之托管静态文件的方法
2018/06/01 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
2018/12/09 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
Python标准库之随机数 (math包、random包)介绍
2014/11/25 Python
python获取图片颜色信息的方法
2015/03/18 Python
python迭代器与生成器详解
2016/03/10 Python
python机器学习之决策树分类详解
2017/12/20 Python
python实现图片中文字分割效果
2019/07/22 Python
基于pytorch的lstm参数使用详解
2020/01/14 Python
纯css3实现的动画按钮的实例教程
2014/11/17 HTML / CSS
纯css3使用vw和vh实现自适应的方法
2018/02/09 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
html5简介_动力节点Java学院整理
2017/07/07 HTML / CSS
英文翻译的自我评价语句
2013/10/04 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
营销计划书
2015/01/17 职场文书
安全责任书
2015/01/29 职场文书
离婚被告答辩状
2015/05/22 职场文书
社会实践心得体会范文
2016/01/14 职场文书
2016年学校十一国庆节活动总结
2016/04/01 职场文书