PHP完整的日历类(CLASS)


Posted in PHP onNovember 27, 2006
<?php  
class Calendar{  
/*  
* 3water.com修正版 
*/  
var $YEAR,$MONTH,$DAY;  
var $WEEK=array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");  
var $_MONTH=array(  
"01"=>"一月",  
"02"=>"二月",  
"03"=>"三月",  
"04"=>"四月",  
"05"=>"五月",  
"06"=>"六月",  
"07"=>"七月",  
"08"=>"八月",  
"09"=>"九月",  
"10"=>"十月",  
"11"=>"十一月",  
"12"=>"十二月"  
);  
//设置年份  
function setYear($year){  
$this->YEAR=$year;  
}  
//获得年份  
function getYear(){  
return $this->YEAR;  
}  
//设置月份  
function setMonth($month){  
$this->MONTH=$month;  
}  
//获得月份  
function getMonth(){  
return $this->MONTH;  
}  
//设置日期  
function setDay($day){  
$this->DAY=$day;  
}  
//获得日期  
function getDay(){  
return $this->DAY;  
}  
//打印日历  
function OUT(){  
$this->_env();  
$week=$this->getWeek($this->YEAR,$this->MONTH,$this->DAY);//获得日期为星期几 (例如今天为2003-07-18,星期五)  
$fweek=$this->getWeek($this->YEAR,$this->MONTH,1); //获得此月第一天为星期几  
echo "<div style=\"margin:0;border:1 solid black;width:300;font:9pt\"><form action=$_SERVER[PHP_SELF] method=\"post\" style=\"margin:0\"><select name=\"month\" onchange=\"this.form.submit();\">";  
for($ttmpa=1;$ttmpa<13;$ttmpa++){//打印12个月  
$ttmpb=sprintf("%02d",$ttmpa);  
if(strcmp($ttmpb,$this->MONTH)==0){  
$select="selected style=\"background-color:#c0c0c0\"";  
}else{  
$select="";  
}  
echo "<option value=\".$ttmpb\".$select>".$this->MONTH[$ttmpb]."</option>\r\n";  
}  
echo " </select> <select name=\"year\" onchange=\"this.form.submit();\">";//打印年份,前后10年  
for($ctmpa=$this->YEAR-10;$ctmpa<$this->YEAR+10;$ctmpa++){  
if($ctmpa>2037){  
break;  
}  
if($ctmpa<1970){  
continue;  
}  
if(strcmp($ctmpa,$this->YEAR)==0){  
$select="selected style=\"background-color:#c0c0c0\"";  
}else{  
$select="";  
}  
echo "<option value=\"$ctmpa\" $select>$ctmpa</option>\r\n";  
}  
echo "</select>  
</form>  
<table border=0 align=center>";  
for($Tmpa=0;$Tmpa<count($this->WEEK);$Tmpa++){//打印星期标头  
echo "<td>".$this->WEEK[$Tmpa];  
}  
for($Tmpb=1;$Tmpb<=date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR));$Tmpb++){//打印所有日期  
if(strcmp($Tmpb,$this->DAY)==0){ //获得当前日期,做标记  
$flag=" bgcolor='#ff0000'";  
}else{  
$flag=' bgcolor=#ffffff';  
}  
if($Tmpb==1){  
echo "<tr>"; //补充打印  
for($Tmpc=0;$Tmpc<$fweek;$Tmpc++){  
echo "<td>";  
}  
}  
if(strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),0)==0){  
echo "<tr><td align=center $flag>$Tmpb";  
}else{  
echo "<td align=center $flag>$Tmpb";  
}  
}  
echo "</table></div>";  
}  
//获得方法内指定的日期的星期数  
function getWeek($year,$month,$day){  
$week=date("w",mktime(0,0,0,$month,$day,$year));//获得星期  
return $week;//获得星期  
}  
function _env(){  
if(isset($_POST["month"])){ //有指定月  
$month=$_POST["month"];  
}else{  
$month=date("m"); //默认为本月  
}  
if(isset($_POST["year"])){ //有指年  
$year=$_POST["year"];  
}else{  
$year=date("Y"); //默认为本年  
}  
$this->setYear($year);  
$this->setMonth($month);  
$this->setDay(date("d"));  
}  
}  
$D=new Calendar;  
$D->OUT();  
?> 
PHP 相关文章推荐
最小化数据传输――在客户端存储数据
Oct 09 PHP
dedecms系统的广告设置代码 基础版本
Apr 09 PHP
PHP CURL模拟GET及POST函数代码
Apr 25 PHP
PHP OPCode缓存 APC详细介绍
Oct 12 PHP
PHP取余函数介绍MOD(x,y)与x%y
May 15 PHP
简单了解WordPress开发中update_option()函数的用法
Jan 11 PHP
PHP封装的MSSql操作类完整实例
May 26 PHP
Laravel5.1自定义500错误页面示例
Oct 09 PHP
关于PHP中字符串与多进制转换函数的实例代码
Nov 03 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
PHP异常处理定义与使用方法分析
Jul 25 PHP
PHP大文件分块上传功能实例详解
Jul 22 PHP
PHP如何得到当前页和上一页的地址?
Nov 27 #PHP
PHP读写文件的方法(生成HTML)
Nov 27 #PHP
PHP date函数参数详解
Nov 27 #PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 #PHP
PHP中的cookie
Nov 26 #PHP
在PHP中使用与Perl兼容的正则表达式
Nov 26 #PHP
上传多个文件的PHP脚本
Nov 26 #PHP
You might like
基于mysql的论坛(1)
2006/10/09 PHP
使用PHP批量生成随机用户名
2008/07/10 PHP
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
php中jQuery插件autocomplate的简单使用笔记
2012/06/14 PHP
php不允许用户提交空表单(php空值判断)
2013/11/12 PHP
php截取指定2个字符之间字符串的方法
2015/04/15 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
Jquery实现带动画效果的经典二级导航菜单
2013/03/22 Javascript
javascript中如何处理引号编码&amp;#034;
2013/08/15 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
javascript上下方向键控制表格行选中并高亮显示的方法
2015/02/13 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
js比较日期大小的方法
2015/05/12 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
jQuery插件HighCharts实现的2D面积图效果示例【附demo源码下载】
2017/03/15 Javascript
如何使用bootstrap框架 bootstrap入门必看!
2017/04/13 Javascript
Vue异步加载about组件
2017/10/31 Javascript
Vue中在新窗口打开页面及Vue-router的使用
2018/06/13 Javascript
微信小程序图片左右摆动效果详解
2019/07/13 Javascript
微信小程序使用npm包的方法步骤
2019/08/13 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
[00:36]DOTA2上海特级锦标赛 Alliance战队宣传片
2016/03/04 DOTA
Python类的多重继承问题深入分析
2014/11/09 Python
python函数map()和partial()的知识点总结
2020/05/26 Python
加拿大著名时装品牌:SOIA & KYO
2016/08/23 全球购物
UNDONE手表官网:世界领先的定制手表品牌
2018/11/13 全球购物
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
团员个人的自我评价
2013/12/02 职场文书
采购主管工作职责
2013/12/12 职场文书
中英文求职信范文
2014/01/27 职场文书
药品业务员岗位职责
2014/04/17 职场文书
初中教师业务学习材料
2014/05/12 职场文书
大学生优秀班干部事迹材料
2014/05/26 职场文书
政法干警核心价值观心得体会
2014/09/11 职场文书
2014机关党员干部“正风肃纪”思想汇报
2014/09/15 职场文书
《夹竹桃》教学反思
2016/02/23 职场文书