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
PHP中Date获取时间不正确怎么办
Jun 05 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
PHP页面间参数传递的四种方法详解
Jun 09 PHP
Parse正式发布开源PHP SDK
Aug 11 PHP
php计算两个整数的最大公约数常用算法小结
Mar 05 PHP
PHP中把错误日志保存在系统日志中(Windows系统)
Jun 23 PHP
PHP实现的简单分页类及用法示例
May 06 PHP
使用JavaScript创建新样式表和新样式规则
Jun 14 PHP
解决Yii2邮件发送结果返回成功,但接收不到邮件的问题
May 23 PHP
PHP-FPM 的管理和配置详解
Feb 17 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 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小技巧之函数重载
2014/06/02 PHP
PHP将session信息存储到数据库的类实例
2015/03/04 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
javascript学习网址备忘
2007/05/29 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
前端框架学习总结之Angular、React与Vue的比较详解
2017/03/14 Javascript
web.js.字符串与正则表达式操作
2017/05/13 Javascript
JavaScript输出所选择起始与结束日期的方法
2017/07/12 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
Python里disconnect UDP套接字的方法
2015/04/23 Python
python后端接收前端回传的文件方法
2019/01/02 Python
pytorch 模型可视化的例子
2019/08/17 Python
centos7中安装python3.6.4的教程
2019/12/11 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
4款Python 类型检查工具,你选择哪个呢?
2020/10/30 Python
CSS3绘制有活力的链接下划线
2016/07/14 HTML / CSS
洲际酒店集团大中华区:IHG中国
2016/08/17 全球购物
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
Space NK英国站:英国热门美妆网站
2017/12/11 全球购物
美国家居装饰和豪华家具购物网站:One Kings Lane
2018/12/24 全球购物
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
一道SQL面试题
2012/12/31 面试题
应用电子专业学生的自我评价
2013/10/16 职场文书
大学生冰淇淋店商业计划书
2014/01/14 职场文书
保洁公司服务承诺书
2014/05/28 职场文书
干部作风建设个人剖析材料
2014/10/11 职场文书
起诉状范本
2015/05/20 职场文书
埃及王子观后感
2015/06/16 职场文书
劳动模范获奖感言
2015/07/31 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers