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下MAIL的另一解决方案
Oct 09 PHP
基于mysql的论坛(2)
Oct 09 PHP
PHP中的cookie
Nov 26 PHP
php将数据库中的电话号码读取出来并生成图片
Aug 31 PHP
PHP基础知识介绍
Sep 17 PHP
php生成txt文件标题及内容的方法
Jan 16 PHP
Yii实现多按钮保存与提交的方法
Dec 03 PHP
php使用explode()函数将字符串拆分成数组的方法
Feb 17 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
浅谈关于PHP解决图片无损压缩的问题
Sep 01 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
Feb 10 PHP
PHP 计算至少是其他数字两倍的最大数的实现代码
May 26 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采集速度探究总结(原创)
2008/04/18 PHP
php不用正则验证真假身份证
2013/11/06 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
destoon实现调用自增数字从1开始的方法
2014/08/21 PHP
Linux下安装oracle客户端并配置php5.3
2014/10/12 PHP
Javascript 对象的解释
2008/11/24 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
jquery使用经验小结
2015/05/20 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
2017/02/22 Javascript
详解Vue微信授权登录前后端分离较为优雅的解决方案
2018/06/29 Javascript
如何为vue的项目添加单元测试
2018/12/19 Javascript
Vue简单封装axios之解决post请求后端接收不到参数问题
2020/02/16 Javascript
js实现简单进度条效果
2020/03/25 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
2020/11/12 Javascript
python实现socket端口重定向示例
2014/02/10 Python
Python中os.path用法分析
2015/01/15 Python
Python AES加密模块用法分析
2017/05/22 Python
python实现简单tftp(基于udp协议)
2018/07/30 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
Python datetime和unix时间戳之间相互转换的讲解
2019/04/01 Python
Python中list的交、并、差集获取方法示例
2019/08/01 Python
初探CSS3中的calc()功能
2015/07/14 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
泰国Robinson百货官网:购买知名品牌的商品
2020/02/08 全球购物
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
企业统计员岗位职责
2013/12/13 职场文书
工程招投标邀请书
2014/01/30 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
个人纪律作风整改措施思想汇报
2014/10/12 职场文书
运动会新闻报道稿
2015/07/22 职场文书
使用python绘制横竖条形图
2022/04/21 Python