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 相关文章推荐
PHP入门
Oct 09 PHP
php项目打包方法
Feb 18 PHP
php程序效率优化的一些策略小结
Jul 17 PHP
PHP mb_convert_encoding文字编码的转换函数介绍
Nov 10 PHP
PHP实现获取图片颜色值的方法
Jul 11 PHP
PHP stream_context_create()函数的使用示例
May 12 PHP
利用PHP将部分内容用星号替换
Apr 21 PHP
简单了解PHP编程中数组的指针的使用
Nov 30 PHP
php求数组全排列,元素所有组合的方法
May 05 PHP
Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例
Sep 20 PHP
Laravel5.1 框架控制器基础用法实例分析
Jan 04 PHP
禁止直接访问php文件代码分享
May 05 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
统计PHP目录中的文件数方法
2019/03/05 PHP
jQuery对象[0]是什么含义?
2010/07/31 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
javascript获取下拉列表框当中的文本值示例代码
2013/07/31 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
IE中图片的onload事件无效问题和解决方法
2014/06/06 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
原生js实现验证码功能
2017/03/16 Javascript
jQuery实现Select下拉列表进行状态选择功能
2017/03/30 jQuery
javascript创建元素和删除元素实例小结
2019/06/19 Javascript
微信小程序webview组件交互,内联h5页面并网页实现微信支付实现解析
2019/08/16 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
[19:14]DOTA2 HEROS教学视频教你分分钟做大人-维萨吉
2014/06/24 DOTA
[05:59]带你看看DPC的台前幕后
2021/03/11 DOTA
Python中的进程分支fork和exec详解
2015/04/11 Python
详解Python中with语句的用法
2015/04/15 Python
Python3遍历目录树实现方法
2015/05/22 Python
理解Python中的With语句
2016/03/18 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
MAC平台基于Python Appium环境搭建过程图解
2020/08/13 Python
canvas探照灯效果的示例代码
2018/11/30 HTML / CSS
C#中有没有静态构造函数,如果有是做什么用的?
2016/06/04 面试题
《难忘的泼水节》教学反思
2014/02/27 职场文书
总经理工作职责范文
2014/03/14 职场文书
公司联欢晚会主持词
2014/03/22 职场文书
植树节标语
2014/06/27 职场文书
小学生五年级大队长竞选发言稿
2014/09/12 职场文书
党校毕业心得体会
2014/09/13 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
2015年化验室工作总结
2015/04/23 职场文书
少年犯观后感
2015/06/11 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
Javascript之datagrid查询详解
2021/09/15 Javascript
Nebula Graph解决风控业务实践
2022/03/31 MySQL