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 中的输出缓冲
Dec 21 PHP
PHP伪静态写法附代码
Jun 20 PHP
php 将bmp图片转为jpg等其他任意格式的图片
Jun 21 PHP
PHP实现变色验证码实例
Jan 06 PHP
php教程之phpize使用方法
Feb 12 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
经典PHP加密解密函数Authcode()修复版代码
Apr 05 PHP
php实现的任意进制互转类分享
Jul 07 PHP
php生成带logo二维码方法小结
Apr 08 PHP
PHP实现根据数组某个键值大小进行排序的方法
Mar 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实现快钱支付功能(涉及到接口)
2013/07/01 PHP
php实现xml转换数组的方法示例
2017/02/03 PHP
PDO::inTransaction讲解
2019/01/28 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
MooTools 页面滚动浮动层智能定位实现代码
2011/08/23 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
js如何改变文章的字体大小
2016/01/08 Javascript
jQuery Ajax 加载数据时异步显示加载动画
2016/08/01 Javascript
JS图片等比例缩放方法完整示例
2016/08/03 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
js嵌套的数组扁平化:将多维数组变成一维数组以及push()与concat()区别的讲解
2019/01/19 Javascript
你知道JavaScript Symbol类型怎么用吗
2020/01/08 Javascript
JS Html转义和反转义(html编码和解码)的实现与使用方法总结
2020/03/10 Javascript
JS实现小米轮播图
2020/09/21 Javascript
python字符串,数值计算
2016/10/05 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
CentOS7.3编译安装Python3.6.2的方法
2018/01/22 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python3之手动创建迭代器的实例代码
2019/05/22 Python
django 通过URL访问上传的文件方法
2019/07/28 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
Python中zip()函数的简单用法举例
2019/09/02 Python
Python使用pyenv实现多环境管理
2021/02/05 Python
html5 canvas实现给图片添加平铺水印
2019/08/20 HTML / CSS
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
财务担保书范文
2014/04/02 职场文书
我的中国梦演讲稿初中篇
2014/08/19 职场文书
我的中国梦演讲稿400字
2014/08/19 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2014年银行工作总结范文
2014/11/12 职场文书
大学生入党自我鉴定范文
2019/06/21 职场文书
pytorch DataLoader的num_workers参数与设置大小详解
2021/05/28 Python
MySQL系列之二 多实例配置
2021/07/02 MySQL