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 curl获取301或302转向的网址问题的解决方法
Jun 02 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
Jun 09 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
php比较相似字符串的方法
Jun 05 PHP
php编程每天必学之验证码
Mar 03 PHP
PHP指定截取字符串中的中英文或数字字符的实例分享
Mar 18 PHP
PHP模块化安装教程
Jun 01 PHP
3种方法轻松处理php开发中emoji表情的问题
Jul 18 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
什么是PHP7中的孤儿进程与僵尸进程
Apr 14 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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+mysqli使用面向对象方式更新数据库实例
2015/01/29 PHP
php入门教程之Zend Studio设置与开发实例
2016/09/09 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
javascript检测对象中是否存在某个属性判断方法小结
2013/05/19 Javascript
JavaScript实现维吉尼亚(Vigenere)密码算法实例
2013/11/22 Javascript
JS模拟酷狗音乐播放器收缩折叠关闭效果代码
2015/10/29 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
分析JS单线程异步io回调的特性
2017/12/01 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
2018/02/06 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
2018/05/21 Javascript
vue项目添加多页面配置的步骤详解
2019/05/22 Javascript
关于layui的下拉搜索框异步加载数据的解决方法
2019/09/28 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
[32:39]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第一场 11.04
2020/11/04 DOTA
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
Python中处理字符串的相关的len()方法的使用简介
2015/05/19 Python
python使用wmi模块获取windows下的系统信息 监控系统
2015/10/27 Python
python基于phantomjs实现导入图片
2016/05/13 Python
Python自动发邮件脚本
2017/03/31 Python
python opencv对图像进行旋转且不裁剪图片的实现方法
2019/07/09 Python
Python matplotlib生成图片背景透明的示例代码
2019/08/30 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
python list的index()和find()的实现
2020/11/16 Python
python简单实现插入排序实例代码
2020/12/16 Python
移动端解决悬浮层(悬浮header、footer)会遮挡住内容的3种方法
2015/03/27 HTML / CSS
Superdry瑞典官网:英国日本街头风品牌
2017/05/17 全球购物
如何写出好的Java代码
2014/04/25 面试题
采购文员岗位职责
2013/11/20 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
医院实习介绍信
2014/01/12 职场文书
商务英语广告词大全
2014/03/18 职场文书
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
打架赔偿协议书范本
2014/10/26 职场文书
小学生读书笔记
2015/07/01 职场文书