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连接MySQL代码的参数说明
Jun 07 PHP
PHP 字符串分割和比较
Oct 06 PHP
解析php中两种缩放图片的函数,为图片添加水印
Jun 14 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
ECMall支持SSL连接邮件服务器的配置方法详解
May 19 PHP
PHP中使用php://input处理相同name值的表单数据
Feb 03 PHP
php include类文件超时问题处理
Feb 06 PHP
php语言中使用json的技巧及json的实现代码详解
Oct 27 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
Jul 03 PHP
PHP 计算两个特别大的整数实例代码
May 07 PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 PHP
php随机生成验证码,php随机生成数字,php随机生成数字加字母!
Apr 01 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
PHP Array交叉表实现代码
2010/08/05 PHP
PHP下常用正则表达式整理
2010/10/26 PHP
基于ThinkPHP5框架使用QueryList爬取并存入mysql数据库操作示例
2019/05/25 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
Javascript String.replace的妙用
2009/09/08 Javascript
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
使用javascript获取页面名称
2014/12/23 Javascript
基于jquery animate操作css样式属性小结
2015/11/27 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
浅谈angularJS中的事件
2016/07/12 Javascript
bootstrap中的 form表单属性role=&quot;form&quot;的作用详解
2017/01/20 Javascript
jQuery 全选 全不选 事件绑定的实现代码
2017/01/23 Javascript
原生js封装自定义滚动条
2017/03/24 Javascript
解决Vue页面固定滚动位置的处理办法
2017/07/13 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
js常用正则表达式集锦
2019/05/17 Javascript
vue+vant使用图片预览功能ImagePreview的问题解决
2020/04/10 Javascript
JavaScript实现雪花飘落效果
2020/12/27 Javascript
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
python自动发送邮件脚本
2018/06/20 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
2020/02/24 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
python def 定义函数,调用函数方式
2020/06/02 Python
python 爬取小说并下载的示例
2020/12/07 Python
浅析两列自适应布局的3种思路
2016/05/03 HTML / CSS
公积金单位接收函
2014/01/11 职场文书
程序员求职信
2014/04/16 职场文书
英语教师个人总结
2015/02/09 职场文书
医生个人年终总结
2015/02/28 职场文书
单位收入证明范本
2015/06/18 职场文书
2016年十一促销广告语
2016/01/28 职场文书
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL