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 相关文章推荐
第十节--抽象方法和抽象类
Nov 16 PHP
第十三节--对象串行化
Nov 16 PHP
php简单封装了一些常用JS操作
Feb 25 PHP
php下几个常用的去空、分组、调试数组函数
Feb 22 PHP
PHP 类相关函数的使用详解
May 10 PHP
PHP以指定字段为索引返回数据库所取的数据数组
Jun 30 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
PHP生成静态HTML文档实现代码
Jun 23 PHP
PHP入门教程之图像处理技巧分析
Sep 11 PHP
php利用递归实现删除文件目录的方法
Sep 23 PHP
php检测mysql表是否存在的方法小结
Jul 20 PHP
PHP实现微信退款功能
Oct 02 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获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
PHP下对数组进行排序的函数
2010/08/08 PHP
PHP根据传入参数合并多个JS和CSS文件的简单实现
2014/06/13 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
thinkphp下MySQL数据库读写分离代码剖析
2017/04/18 PHP
ThinkPHP实现简单登陆功能
2017/04/28 PHP
jquery控制listbox中项的移动并排序的实现代码
2010/09/28 Javascript
jquery ui dialog ie8出现滚动条的解决方法
2010/12/06 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
Windows下用PyCharm和Visual Studio开始Python编程
2015/10/26 Javascript
学习javascript面向对象 javascript实现继承的方式
2016/01/04 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
JS取数字小数点后两位或n位的简单方法
2016/10/24 Javascript
微信小程序 自己制作小组件实例详解
2016/12/22 Javascript
AngularJS常见过滤器用法实例总结
2017/07/06 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
关于layui表单中按钮自动提交的解决方法
2019/09/09 Javascript
JS画布动态实现黑客帝国背景效果
2020/11/08 Javascript
python元组操作实例解析
2014/09/23 Python
python统计日志ip访问数的方法
2015/07/06 Python
深入解析Python中的集合类型操作符
2015/08/19 Python
python装饰器与递归算法详解
2016/02/18 Python
Python实现简单的获取图片爬虫功能示例
2017/07/12 Python
Python实现的凯撒密码算法示例
2018/04/12 Python
Python map及filter函数使用方法解析
2020/08/06 Python
小组合作学习反思
2014/02/18 职场文书
前台文员职责范本
2014/03/07 职场文书
2014学雷锋活动心得体会
2014/03/10 职场文书
学校募捐倡议书
2014/05/14 职场文书
党员干部一句话承诺
2014/05/30 职场文书
2015年大学生工作总结
2015/04/21 职场文书
结婚主持人致辞
2015/07/28 职场文书