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 mysql数据库操作类
Jun 04 PHP
PHP操作xml代码
Jun 17 PHP
PHP使用get_headers函数判断远程文件是否存在的方法
Nov 28 PHP
php+mysqli数据库连接的两种方式
Jan 28 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP中通过trigger_error触发PHP错误示例
Jun 23 PHP
php微信高级接口调用方法(自定义菜单接口、客服接口、二维码)
Nov 28 PHP
php实现给二维数组中所有一维数组添加值的方法
Feb 04 PHP
使用PHPExcel实现数据批量导出为excel表格的方法(必看)
Jun 09 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
php实现session共享的实例方法
Sep 19 PHP
gearman中worker常驻后台,导致MySQL server has gone away的解决方法
Feb 27 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 Ajax实现页面无刷新发表评论
2007/01/02 PHP
Windows下编译PHP5.4和xdebug全记录
2015/04/03 PHP
日常整理PHP中简单的图形处理(经典)
2015/10/26 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
ThinkPHP 5.x远程命令执行漏洞复现
2019/09/23 PHP
JS加ASP二级域名转向的代码
2007/05/17 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
window.open以post方式将内容提交到新窗口
2012/12/26 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
多个checkbox被选中时如何判断是否有自己想要的
2014/09/22 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
基于node实现websocket协议
2016/04/25 Javascript
微信小程序 swiper组件详解及实例代码
2016/10/25 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
解决Angularjs异步操作后台请求用$q.all排列先后顺序问题
2019/11/29 Javascript
vue cli3.0打包上线静态资源找不到路径的解决操作
2020/08/03 Javascript
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python实现可设置持续运行时间、线程数及时间间隔的多线程异步post请求功能
2018/01/11 Python
pandas的相关系数与协方差实例
2019/12/27 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
使用python对excel表格处理的一些小功能
2021/01/25 Python
简单的HTML5初步入门教程
2015/09/29 HTML / CSS
We Fashion荷兰:一家国际时装公司
2018/04/18 全球购物
美国马匹用品和马钉购物网站:State Line Tack
2018/08/05 全球购物
印度尼西亚最好的小工具在线商店:Erafone.com
2019/03/26 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
你的创业计划书怎样才能打动风投
2014/02/06 职场文书
升职自荐信范文
2015/03/27 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
Mysql效率优化定位较低sql的两种方式
2021/05/26 MySQL
浅谈mysql增加索引不生效的几种情况
2021/06/23 MySQL
Redis 彻底禁用RDB持久化操作
2021/07/09 Redis