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
DedeCMS dede_channeltype表字段注释
Apr 07 PHP
PHP5中实现多态的两种方法实例分享
Apr 21 PHP
PHP生成网站桌面快捷方式代码分享
Oct 11 PHP
php中Socket创建与监听实现方法
Jan 05 PHP
Php-Redis安装测试笔记
Mar 05 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
May 04 PHP
关于PHP通用返回值设置方法
Mar 31 PHP
浅谈PHP面向对象之访问者模式+组合模式
May 22 PHP
PHP基于DateTime类解决Unix时间戳与日期互转问题【针对1970年前及2038年后时间戳】
Jun 13 PHP
PHP微信网页授权的配置文件操作分析
May 29 PHP
thinkPHP事务操作简单案例分析
Oct 17 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实现redis数据库指定库号迁移的方法
2015/01/14 PHP
laravel 实现上传图片到本地和前台访问示例
2019/10/21 PHP
用于table内容排序
2006/07/21 Javascript
9个javascript语法高亮插件 推荐
2009/07/18 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
JSON为什么那样红为什么要用json(另有洞天)
2012/12/26 Javascript
JavaScript操纵窗口的方法小结
2013/06/28 Javascript
jquery live()调用不存在的解决方法
2014/02/26 Javascript
JavaScript中的console.time()函数详细介绍
2014/12/29 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
jQuery自定义图片缩放拖拽插件imageQ实现方法(附demo源码下载)
2016/05/27 Javascript
JavaScript判断微信浏览器实例代码
2016/06/13 Javascript
基于vue的fullpage.js单页滚动插件
2017/03/20 Javascript
微信小程序 开发MAP(地图)实例详解
2017/06/27 Javascript
详解使用React全家桶搭建一个后台管理系统
2017/11/04 Javascript
vue加载自定义的js文件方法
2018/03/13 Javascript
JS实现的全选、全不选及反选功能【案例】
2019/02/19 Javascript
微信小程序云开发之云函数详解
2019/05/16 Javascript
js+canvas实现两张图片合并成一张图片的方法
2019/11/01 Javascript
JavaScript实现图片伪异步上传过程解析
2020/04/10 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
逐行分析鸿蒙系统的 JavaScript 框架(推荐)
2020/09/17 Javascript
H5+css3+js搭建带验证码的登录页面
2020/10/11 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
python数据结构之二叉树的建立实例
2014/04/29 Python
Python类属性与实例属性用法分析
2015/05/09 Python
Python中subprocess的简单使用示例
2015/07/28 Python
Python实现Kmeans聚类算法
2020/06/10 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
浅谈pycharm出现卡顿的解决方法
2018/12/03 Python
python3实现点餐系统
2019/01/24 Python
简单了解python的一些位运算技巧
2019/07/13 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
python代码打印100-999之间的回文数示例
2019/11/24 Python
Python中itertools库的四个函数介绍
2022/04/06 Python