PHP 万年历实现代码


Posted in PHP onOctober 18, 2012

使用PHP实现万年历功能的要点:

•得到当前要处理的月份总共有多少天$days
•得到当前要处理的月份的一号是星期几$dayofweek
$days的作用:知道要处理的月份共有多少天,就可以通过循环输出天数了

$dayofweek的作用:只有知道每个月的1号是星期几,才能知道在输出天数之前需要输出多少空格(空白)

最终效果图如下:

PHP 万年历实现代码

“万年历类”的代码如下:

<?php 
/** 
* PHP万年历 
* @author Fly 2012/10/16 
*/ 
class Calendar{ 
protected $_table;//table表格 
protected $_currentDate;//当前日期 
protected $_year; //年 
protected $_month; //月 
protected $_days; //给定的月份应有的天数 
protected $_dayofweek;//给定月份的 1号 是星期几 
/** 
* 构造函数 
*/ 
public function __construct() 
{ 
$this->_table=""; 
$this->_year = isset($_GET["y"])?$_GET["y"]:date("Y"); 
$this->_month = isset($_GET["m"])?$_GET["m"]:date("m"); 
if ($this->_month>12){//处理出现月份大于12的情况 
$this->_month=1; 
$this->_year++; 
} 
if ($this->_month<1){//处理出现月份小于1的情况 
$this->_month=12; 
$this->_year--; 
} 
$this->_currentDate = $this->_year.'年'.$this->_month.'月份';//当前得到的日期信息 
$this->_days = date("t",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份应有的天数 
$this->_dayofweek = date("w",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份的 1号 是星期几 
} 
/** 
* 输出标题和表头信息 
*/ 
protected function _showTitle() 
{ 
$this->_table="<table><thead><tr align='center'><th colspan='7'>".$this->_currentDate."</th></tr></thead>"; 
$this->_table.="<tbody><tr>"; 
$this->_table .="<td style='color:red'>星期日</td>"; 
$this->_table .="<td>星期一</td>"; 
$this->_table .="<td>星期二</td>"; 
$this->_table .="<td>星期三</td>"; 
$this->_table .="<td>星期四</td>"; 
$this->_table .="<td>星期五</td>"; 
$this->_table .="<td style='color:red'>星期六</td>"; 
$this->_table.="</tr>"; 
} 
/** 
* 输出日期信息 
* 根据当前日期输出日期信息 
*/ 
protected function _showDate() 
{ 
$nums=$this->_dayofweek+1; 
for ($i=1;$i<=$this->_dayofweek;$i++){//输出1号之前的空白日期 
$this->_table.="<td> </td>"; 
} 
for ($i=1;$i<=$this->_days;$i++){//输出天数信息 
if ($nums%7==0){//换行处理:7个一行 
$this->_table.="<td>$i</td></tr><tr>"; 
}else{ 
$this->_table.="<td>$i</td>"; 
} 
$nums++; 
} 
$this->_table.="</tbody></table>"; 
$this->_table.="<h3><a href='?y=".($this->_year)."&m=".($this->_month-1)."'>上一月</a>   "; 
$this->_table.="<a href='?y=".($this->_year)."&m=".($this->_month+1)."'>下一月</a></h3>"; 
} 
/** 
* 输出日历 
*/ 
public function showCalendar() 
{ 
$this->_showTitle(); 
$this->_showDate(); 
echo $this->_table; 
} 
} 
$calc=new Calendar(); 
$calc->showCalendar();

出处:http://www.cnblogs.com/hongfei
PHP 相关文章推荐
PHP产生随机字符串函数
Dec 06 PHP
php PDO中文乱码解决办法
Jul 20 PHP
初次接触php抽象工厂模式(Elgg)
Mar 21 PHP
一道关于php变量引用的面试题
Aug 08 PHP
php生成图形验证码几种方法小结
Aug 15 PHP
php实现读取超大文件的方法
Jul 28 PHP
php获取字符串中各个字符出现次数的方法
Feb 23 PHP
PHP中文乱码解决方案
Mar 05 PHP
PHP输出缓冲控制Output Control系列函数详解
Jul 02 PHP
Yii2语言国际化的配置教程
Aug 19 PHP
PHP精确到毫秒秒杀倒计时实例详解
Mar 14 PHP
基于Laravel 多个中间件的执行顺序详解
Oct 21 PHP
php页面缓存ob系列函数介绍
Oct 18 #PHP
php cc攻击代码与防范方法
Oct 18 #PHP
php shell超强免杀、减少体积工具实现代码
Oct 16 #PHP
PHP中替换换行符的几种方法小结
Oct 15 #PHP
php变量范围介绍
Oct 15 #PHP
php模板函数 正则实现代码
Oct 15 #PHP
php mssql扩展SQL查询中文字段名解决方法
Oct 15 #PHP
You might like
PHP面向对象程序设计内置标准类,普通数据类型转为对象类型示例
2019/06/12 PHP
Thinkphp 框架扩展之数据库驱动常用方法小结
2020/04/23 PHP
获取HTML DOM节点元素的方法的总结
2009/08/21 Javascript
Jquery实现的tab效果可以指定默认显示第几页
2013/10/16 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
jQuery $命名冲突解决方案汇总
2014/11/13 Javascript
JQuery控制Radio选中方法分析
2015/05/29 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
Vue.js快速入门实例教程
2016/10/15 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
谈谈第三方App接入微信登录 解读
2016/12/27 Javascript
js判断手机号是否正确并返回的实现代码
2017/01/17 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
JavaScript 值类型和引用类型的初次研究(推荐)
2017/07/19 Javascript
Vue.js 2.x之组件的定义和注册图文详解
2018/06/19 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
vue中使用protobuf的过程记录
2018/10/26 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
Python单链表的简单实现方法
2014/09/23 Python
Python使用回溯法子集树模板获取最长公共子序列(LCS)的方法
2017/09/08 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
pytorch构建多模型实例
2020/01/15 Python
浅谈python的elementtree模块处理中文注意事项
2020/03/06 Python
IDLE下Python文件编辑和运行操作
2020/04/25 Python
使用jupyter notebook运行python和R的步骤
2020/08/13 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
打架检讨书100字
2014/01/08 职场文书
总经理岗位职责范本
2014/02/02 职场文书
行政人事经理职位说明书
2014/03/05 职场文书
升职感谢信
2015/01/22 职场文书
2015年学校教研室主任工作总结
2015/07/20 职场文书
学校远程教育工作总结
2015/08/11 职场文书
Pygame如何使用精灵和碰撞检测
2021/11/17 Python