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 相关文章推荐
构建简单的Webmail系统
Oct 09 PHP
谈谈新手如何学习PHP
Dec 23 PHP
mysql5详细安装教程
Jan 15 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
Yii2 加载css、js 载静态资源的方法
Mar 10 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
PHP安装扩展mcrypt以及相关依赖项深入讲解
Mar 04 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
千呼万唤始出来,DOTA2勇士令状不朽宝藏Ⅱ现已推出
2020/08/25 DOTA
php的mkdir()函数创建文件夹比较安全的权限设置方法
2014/07/28 PHP
windows的文件系统机制引发的PHP路径爆破问题分析
2014/07/28 PHP
php实现概率性随机抽奖代码
2016/01/02 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
PHP根据key删除数组中指定的元素
2019/02/28 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
jQuery修改li下的样式以及li下的img的src的值的方法
2014/11/02 Javascript
两种js监听滚轮事件的实现方法
2016/05/13 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
判断js的Array和Object的实现方法
2016/08/29 Javascript
基于JS实现类似支付宝支付密码输入框
2016/09/02 Javascript
Node.js connect ECONNREFUSED错误解决办法
2016/09/15 Javascript
JQuery实现列表中复选框全选反选功能封装(推荐)
2016/11/24 Javascript
简单的vue-resourse获取json并应用到模板示例
2017/02/10 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
基于JavaScript实现焦点图轮播效果
2017/03/27 Javascript
详解如何创建并发布一个 vue 组件
2018/11/08 Javascript
微信小程序显示倒计时功能示例【测试可用】
2018/12/03 Javascript
react 中父组件与子组件双向绑定问题
2019/05/20 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
vue element 关闭当前tab 跳转到上一路由操作
2020/07/22 Javascript
[53:52]EG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python入门教程之运算符与控制流
2016/08/17 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
python3+PyQt5自定义视图详解
2018/04/24 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
python爬虫爬取幽默笑话网站
2019/10/24 Python
Python下应用opencv 实现人脸检测功能
2019/10/24 Python
python是怎么被发明的
2020/06/15 Python
美国最大的网上冲印店:Shutterfly
2017/01/01 全球购物
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
雷锋式好少年事迹材料
2014/08/17 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android