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 12 PHP
更改localhost为其他名字的方法
Feb 10 PHP
Ubuntu中搭建Nginx、PHP环境最简单的方法
Mar 05 PHP
php+ajax实现无刷新数据分页的办法
Nov 02 PHP
服务器迁移php版本不同可能诱发的问题
Dec 22 PHP
php代码架构的八点注意事项
Jan 25 PHP
关于PHP文件的自动运行方法分析
May 13 PHP
微信支付PHP SDK ―― 公众号支付代码详解
Sep 13 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
Dec 25 PHP
Laravel统一错误处理为JSON的方法介绍
Oct 18 PHP
浅谈如何提高PHP代码质量之单元测试
May 28 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 Directory 函数的详解
2013/03/07 PHP
laravel 使用事件系统统计浏览量的实现
2019/10/16 PHP
解决Laravel无法使用COOKIE和SESSION的问题
2019/10/16 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
jquery 简单导航实现代码
2009/09/11 Javascript
js的写法基础分析
2011/01/17 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)
2014/05/22 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
javascript数据类型示例分享
2015/01/19 Javascript
JavaScript+html5 canvas绘制的小人效果
2016/01/27 Javascript
JS中JSON对象和String之间的互转及处理技巧
2016/04/06 Javascript
关于cookie的初识和运用(js和jq)
2016/04/07 Javascript
JS实现的DIV块来回滚动效果示例
2017/02/07 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python基于pygame实现的弹力球效果(附源码)
2015/11/11 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python如何调用php文件中的函数详解
2020/12/29 Python
世界知名接发和假发品牌:Poze Hair
2017/03/08 全球购物
Rag & Bone官网:瑞格布恩高级成衣
2018/04/19 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
会计专业推荐信
2013/10/29 职场文书
保密工作实施方案
2014/02/24 职场文书
2014保险公司内勤工作总结
2014/12/16 职场文书
公司承诺书格式范文
2015/04/28 职场文书
2015年销售助理工作总结
2015/05/11 职场文书
五年级作文之学校的四季
2019/12/05 职场文书
pytorch 如何使用float64训练
2021/05/24 Python
go开发alertmanger实现钉钉报警
2021/07/16 Golang
SQL注入详解及防范方法
2021/12/06 MySQL
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android
Spring Bean是如何初始化的详解
2022/03/22 Java/Android