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 14 PHP
php的ajax框架xajax入门与试用介绍
Dec 19 PHP
PHP+SQL 注入攻击的技术实现以及预防办法
Dec 29 PHP
php Session存储到Redis的方法
Nov 04 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
php实现插入数组但不影响原有顺序的方法
Mar 27 PHP
symfony2.4的twig中date用法分析
Mar 18 PHP
postfixadmin忘记密码后的修改密码方法详解
Jul 20 PHP
JSON PHP中,Json字符串反序列化成对象/数组的方法
May 31 PHP
PHP中“=&gt;
Mar 01 PHP
laravel框架上传图片实现实时预览功能
Oct 14 PHP
PHP设计模式之 策略模式Strategy详解【对象行为型】
May 01 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
人工智能开始玩《星际争霸2》 你的操作跟得上吗?
2017/08/11 星际争霸
ThinkPHP模板中数组循环实例
2014/10/30 PHP
php常用文件操作函数汇总
2014/11/22 PHP
php中fgetcsv()函数用法实例
2014/11/28 PHP
CI操作cookie的方法分析(基于helper类库)
2016/03/28 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
理解JavaScript中的对象 推荐
2011/01/09 Javascript
新发现一个骗链接的方法(js读取cookies)
2012/01/11 Javascript
jQuery+.net实现浏览更多内容(改编php版本)
2013/03/28 Javascript
Js 正则表达式知识汇总
2014/12/02 Javascript
jQuery实现HTML5 placeholder效果实例
2014/12/09 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
JS弹出对话框实现方法(三种方式)
2015/12/18 Javascript
JQuery解析XML数据的几个简单实例
2016/05/18 Javascript
原生js编写焦点图效果
2016/12/08 Javascript
jQuery实现的浮动层div浏览器居中显示效果
2017/02/03 Javascript
谈谈VUE种methods watch和compute的区别和联系
2017/08/01 Javascript
js匿名函数使用&amp;传参(实例)
2017/09/08 Javascript
详解react-router 4.0 下服务器如何配合BrowserRouter
2017/12/29 Javascript
JS实现百度搜索框关键字推荐
2020/02/17 Javascript
详解JavaScript 异步编程
2020/07/13 Javascript
python用opencv批量截取图像指定区域的方法
2019/01/24 Python
Python中的全局变量如何理解
2020/06/04 Python
浅谈keras中loss与val_loss的关系
2020/06/22 Python
python 获取剪切板内容的两种方法
2020/11/28 Python
Python的logging模块基本用法
2020/12/24 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
伦敦香水公司:The London Perfume Company
2019/11/13 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
办公室保洁员岗位职责
2013/12/02 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
2015年社区综治宣传月活动总结
2015/03/25 职场文书
教师研修随笔感言
2015/11/18 职场文书
java高级用法JNA强大的Memory和Pointer
2022/04/19 Java/Android