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版)
Oct 09 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
May 07 PHP
phpMyAdmin自动登录和取消自动登录的配置方法
May 12 PHP
php操作redis中的hash和zset类型数据的方法和代码例子
Jul 05 PHP
PHP连接MySQL数据的操作要点
Mar 20 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
crontab无法执行php的解决方法
Jan 25 PHP
php中让人头疼的浮点数运算分析
Oct 10 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
windows环境下使用Composer安装ThinkPHP5
May 18 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
php中yii框架实例用法
Dec 22 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 adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
PHP+ACCESS 文章管理程序代码
2010/06/21 PHP
深入了解PHP类Class的概念
2012/06/14 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
Zend Framework教程之Zend_Config_Xml用法分析
2016/03/23 PHP
php+Memcached实现简单留言板功能示例
2017/02/15 PHP
php实现的三个常用加密解密功能函数示例
2017/11/06 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
Yii2结合Workerman的websocket示例详解
2018/09/10 PHP
判断客户浏览器是否支持cookie的示例代码
2013/12/23 Javascript
JQuery中dataGrid设置行的高度示例代码
2014/01/03 Javascript
js获取浏览器基本信息大全
2014/11/27 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
基于vue实现分页效果
2017/11/06 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
Jquery和CSS实现选择框重置按钮功能
2018/11/08 jQuery
使用webpack构建应用的方法步骤
2019/03/04 Javascript
angular使用md5,CryptoJS des加密的方法
2019/06/03 Javascript
layui清空,重置表单数据的实例
2019/09/12 Javascript
node.js使用http模块创建服务器和客户端完整示例
2020/02/10 Javascript
Angular5整合富文本编辑器TinyMCE的方法(汉化+上传)
2020/05/26 Javascript
python中list循环语句用法实例
2014/11/10 Python
Python编写生成验证码的脚本的教程
2015/05/04 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
Python lxml解析HTML并用xpath获取元素的方法
2019/01/02 Python
Python基于pygame实现单机版五子棋对战
2019/12/26 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
英国最大的宠物商店:Pets at Home
2019/04/17 全球购物
学生党员思想汇报
2013/12/28 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
2015年大学社团工作总结
2015/04/09 职场文书
战马观后感
2015/06/08 职场文书
结婚喜宴祝酒词
2015/08/10 职场文书