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.MVC的模板标签系统(一)
Sep 05 PHP
Smarty安装配置方法
Apr 10 PHP
php csv操作类代码
Dec 14 PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 PHP
php实现斐波那契数列的简单写法
Jul 19 PHP
访问编码后的中文URL返回404错误的解决方法
Aug 20 PHP
php中实现xml与mysql数据相互转换的方法
Dec 25 PHP
标准PHP的AES加密算法类
Mar 12 PHP
基于ThinkPHP实现批量删除
Dec 18 PHP
PHP书写格式详解(必看)
May 23 PHP
php  单例模式详细介绍及实现源码
Nov 05 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
Oct 23 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/06/07 PHP
php通过smtp邮件验证登陆的方法
2016/05/11 PHP
Laravel 加载第三方类库的方法
2018/04/20 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
jquery获取当前元素索引值用法实例
2015/06/10 Javascript
jQuery编写网页版2048小游戏
2017/01/06 Javascript
nodejs个人博客开发第六步 数据分页
2017/04/12 NodeJs
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
JSON生成Form表单的方法示例
2018/11/21 Javascript
从0到1搭建Element的后台框架的方法步骤
2019/04/10 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
vue实现axios图片上传功能
2019/08/20 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
2020/07/14 Javascript
[04:49]2014DOTA2国际邀请赛 Newbee顺利挺进总决赛 ImbaTV独家专访
2014/07/19 DOTA
[07:48]DOTA2上海特级锦标赛主赛事首日RECAP
2016/03/04 DOTA
Python 文件和输入输出小结
2013/10/09 Python
python实现在sqlite动态创建表的方法
2015/05/08 Python
Django框架中方法的访问和查找
2015/07/15 Python
Flask数据库迁移简单介绍
2017/10/24 Python
python实现简单淘宝秒杀功能
2018/05/03 Python
python列表推导式入门学习解析
2019/12/02 Python
Python如何读取、写入CSV数据
2020/07/28 Python
python中四舍五入的正确打开方式
2021/01/18 Python
纪伊国屋泰国网上书店:Kinokuniya泰国
2017/12/24 全球购物
信息技术毕业生自荐信范文
2014/03/13 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
《中国梦我的梦》大学生演讲稿
2014/08/20 职场文书
工作调动申请报告
2015/05/18 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
windows安装 redis 6.2.6最新步骤详解
2022/04/26 Redis