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简单对象与数组的转换函数代码(php多层数组和对象的转换)
May 18 PHP
PHP jQuery表单,带验证具体实现方法
Feb 15 PHP
PHP开源开发框架ZendFramework使用中常见问题说明及解决方案
Jun 12 PHP
destoon复制新模块的方法
Jun 21 PHP
PHP生成短网址的3种方法代码实例
Jul 08 PHP
浅谈json_encode用法
Mar 05 PHP
PHP中字符与字节的区别及字符串与字节转换示例
Oct 15 PHP
PHP学习记录之数组函数
Jun 01 PHP
Laravel框架基于中间件实现禁止未登录用户访问页面功能示例
Jan 17 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
Aug 05 PHP
php实现微信小程序授权登录功能(实现流程)
Nov 13 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的六种方法小结
2009/11/02 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
Javascript Select操作大集合
2009/05/26 Javascript
Jquery替换已存在于element上的event的方法
2010/03/09 Javascript
Cookie 小记
2010/04/01 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
Nodejs中读取中文文件编码问题、发送邮件和定时任务实例
2015/01/01 NodeJs
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
jQuery实现下拉加载功能实例代码
2016/04/01 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
CSS3 3D 技术手把手教你玩转
2016/09/02 Javascript
利用js定义一个导航条菜单
2017/03/14 Javascript
在Debian(Raspberry Pi)树莓派上安装NodeJS的教程详解
2017/09/19 NodeJs
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
node中的session的具体使用
2018/09/14 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
灵活使用console让js调试更简单的方法步骤
2019/04/23 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
python开发之str.format()用法实例分析
2016/02/22 Python
分享一下如何编写高效且优雅的 Python 代码
2017/09/07 Python
PyCharm代码格式调整方法
2018/05/23 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
python绘制动态曲线教程
2020/02/24 Python
pyqt5数据库使用详细教程(打包解决方案)
2020/03/25 Python
Django模板报TemplateDoesNotExist异常(亲测可行)
2020/12/18 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
高中生学习生活的自我评价
2013/11/27 职场文书
酒店个人求职信范文
2014/01/25 职场文书
合作协议书格式
2014/08/19 职场文书
大学生万能检讨书范例
2014/10/04 职场文书
vue使用节流函数的踩坑实例指南
2021/05/20 Vue.js
ROS系统将python包编译为可执行文件的简单步骤
2021/07/25 Python
一文了解MYSQL三大范式和表约束
2022/04/03 MySQL
Windows Server 2016 配置 IIS 的详细步骤
2022/04/28 Servers