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 相关文章推荐
简单的页面缓冲技术
Oct 09 PHP
Fatal error: Call to undefined function curl_init()解决方法
Apr 09 PHP
php异常处理技术,顶级异常处理器
Jun 13 PHP
非常精妙的PHP递归调用与静态变量使用
Dec 16 PHP
Smarty局部缓存的几种方法简介
Jun 17 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
PHP下使用mysqli的函数连接mysql出现warning: mysqli::real_connect(): (hy000/1040): ...
Feb 14 PHP
PHP 二维数组和三维数组的过滤
Mar 16 PHP
PHP简单实现文本计数器的方法
Apr 28 PHP
php 的反射详解及示例代码
Aug 25 PHP
详解PHP原生DOM对象操作XML的方法
Oct 17 PHP
PHP chop()函数讲解
Feb 11 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
摩卡咖啡
2021/03/03 咖啡文化
php开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
PHP--用万网的接口实现域名查询功能
2012/12/13 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
phalcon框架使用指南
2016/02/23 PHP
Symfony控制层深入详解
2016/03/17 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP 二维关联数组根据其中一个字段排序(推荐)
2017/04/04 PHP
thinkphp3.2.0 setInc方法 源码全面解析
2018/01/29 PHP
php接口隔离原则实例分析
2019/11/11 PHP
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
JavaScript控制Session操作方法
2013/01/17 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
JavaScript中关联原型链属性特性
2016/02/13 Javascript
JS组件系列之JS组件封装过程详解
2017/04/28 Javascript
详解Angular的8个主要构造块
2017/06/20 Javascript
js学习总结_选项卡封装(实例讲解)
2017/07/13 Javascript
详解webpack模块化管理和打包工具
2018/04/21 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
JS原形与原型链深入详解
2020/05/09 Javascript
vue.js页面加载执行created,mounted的先后顺序说明
2020/11/07 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
[53:23]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python根据经纬度计算距离示例
2014/02/16 Python
python实现反转部分单向链表
2018/09/27 Python
Django 实现admin后台显示图片缩略图的例子
2019/07/28 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
化工专业个人的求职信范文
2013/11/28 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
医生进修自我鉴定
2014/01/19 职场文书
竞选学委演讲稿
2014/09/13 职场文书
2015年纪念“卢沟桥事变”78周年活动方案
2015/05/06 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书