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详细彻底学习Smarty
Mar 27 PHP
php 保留小数点
Apr 21 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
php 模拟 asp.net webFrom 按钮提交事件实例
Oct 13 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
php使用指定编码导出mysql数据到csv文件的方法
Mar 31 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP判断是否是微信打开,浏览器打开的方法
Mar 14 PHP
Yii2框架实现登陆添加验证码功能示例
Jul 12 PHP
thinkphp集成前端脚手架Vue-cli的教程图解
Aug 30 PHP
Laravel中10个有用的用法小结
May 06 PHP
PHP使用非对称加密算法RSA
Apr 21 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 addslashes及其他清除空格的方法是不安全的
2012/01/25 PHP
php preg_replace替换实例讲解
2013/11/04 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
php unicode编码和字符串互转的方法
2020/08/12 PHP
php查询及多条件查询
2017/02/26 PHP
PHP结合Vue实现滚动底部加载效果
2017/12/17 PHP
php 比较获取两个数组相同和不同元素的例子(交集和差集)
2019/10/18 PHP
JavaScript 浏览器验证代码(来自discuz)
2010/07/17 Javascript
jQuery EasyUI API 中文文档 - MenuButton菜单按钮使用介绍
2011/10/06 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
Node.js如何自动审核团队的代码
2016/07/20 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
javascript中的try catch异常捕获机制用法分析
2016/12/14 Javascript
原生js实现轮播图
2017/02/27 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
JavaScript中Array方法你该知道的正确打开方法
2018/09/11 Javascript
Phaser.js实现简单的跑酷游戏附源码下载
2018/10/26 Javascript
Vue中的验证登录状态的实现方法
2019/03/09 Javascript
Laravel admin实现消息提醒、播放音频功能
2019/07/10 Javascript
[32:26]EG vs IG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python使用dict.fromkeys()快速生成一个字典示例
2019/04/24 Python
详解DeBug Python神级工具PySnooper
2019/07/03 Python
python中时间、日期、时间戳的转换的实现方法
2019/07/06 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
Python爬虫制作翻译程序的示例代码
2021/02/22 Python
Lookfantastic西班牙官网:英国知名美妆购物网站
2018/06/13 全球购物
Mansur Gavriel官网:纽约市的一个设计品牌
2019/05/02 全球购物
Feelunique德国官方网站:欧洲最大的在线美容零售商
2019/07/20 全球购物
党员教师四风问题整改措施思想汇报
2014/10/08 职场文书
2014年司法局工作总结
2014/12/11 职场文书
汽车销售员岗位职责
2015/04/11 职场文书
Nginx反向代理多个服务器的实现方法
2021/03/31 Servers
Nginx本地目录映射实现代码实例
2021/03/31 Servers
mysql的Buffer Pool存储及原理
2022/04/02 MySQL
python获取带有返回值的多线程
2022/05/02 Python