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 相关文章推荐
福利彩票幸运号码自动生成器
Oct 09 PHP
用PHP生成html分页列表的代码
Mar 18 PHP
PHP GD 图像处理组件的常用函数总结
Apr 28 PHP
理解和运用PHP中的多态性[译]
Aug 02 PHP
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
Dec 05 PHP
PHP 中关于ord($str)&amp;gt;0x80的详细说明
Sep 23 PHP
thinkphp实现图片上传功能分享
Mar 04 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP中__autoload和Smarty冲突的简单解决方法
Apr 08 PHP
Laravel4中的Validator验证扩展用法详解
Jul 26 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
Dec 02 PHP
解决PHP curl或file_get_contents下载图片损坏或无法打开的问题
Oct 11 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
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP加密解密类实例分析
2015/04/20 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
学习ExtJS TextField常用方法
2009/10/07 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
jquery实现页面虚拟键盘特效
2015/08/08 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
JS使用正则表达式实现关键字替换加粗功能示例
2016/08/03 Javascript
ES6实现的遍历目录函数示例
2017/04/07 Javascript
jQuery图片加载失败替换默认图片方法汇总
2017/11/29 jQuery
浅谈webpack编译vue项目生成的代码探索
2017/12/11 Javascript
vue的常用组件操作方法应用分析
2018/04/13 Javascript
javscript 数组扁平化的实现
2020/02/03 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
构建一个JavaScript插件系统
2020/10/20 Javascript
[33:33]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第二场 11.27
2020/11/30 DOTA
python 将字符串转换成字典dict
2013/03/24 Python
python基础教程之简单入门说明(变量和控制语言使用方法)
2014/03/25 Python
python+matplotlib绘制旋转椭圆实例代码
2018/01/12 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
前后端结合实现amazeUI分页效果
2020/08/21 HTML / CSS
非洲NO.1网上商店:Jumia肯尼亚
2016/08/18 全球购物
环境科学专业个人求职的自我评价
2013/11/28 职场文书
考试作弊被抓检讨书
2014/01/10 职场文书
银行工作检查书范文
2014/01/31 职场文书
畜牧兽医本科生的自我评价
2014/03/03 职场文书
生日礼品店创业计划书范文
2014/03/21 职场文书
中学生的1000字检讨书
2014/10/11 职场文书
运动会开幕式致辞
2015/07/29 职场文书
办公用品管理制度
2015/08/04 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书
一行Python命令实现批量加水印
2022/04/07 Python
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers