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性能优化分析工具XDebug 大型网站调试工具
May 22 PHP
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
PHP引用(&amp;)各种使用方法实例详解
Mar 20 PHP
PHP的preg_match匹配字符串长度问题解决方法
May 03 PHP
php针对cookie操作的队列操作类实例
Dec 10 PHP
基于OpenCart 开发支付宝,财付通,微信支付参数错误问题
Oct 01 PHP
Yii2 RESTful中api的使用及开发实例详解
Jul 06 PHP
Yii2第三方类库插件Imagine的安装和使用
Jul 06 PHP
PHP对象的浅复制与深复制的实例详解
Oct 26 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
PHP实现websocket通信的方法示例
Aug 28 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输出时间差函数代码
2013/01/28 PHP
Opcache导致php-fpm崩溃nginx返回502
2015/03/02 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
2017/07/16 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
如何用JS/HTML将时间戳转换为“xx天前”的形式
2017/02/06 Javascript
Vue.js中兄弟组件之间互相传值实例
2017/06/01 Javascript
jquery动态添加以及遍历option并获取特定样式名称的option方法
2018/01/29 jQuery
对node.js中render和send的用法详解
2018/05/14 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
JavaScript一元正号运算符示例代码
2019/06/30 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
使用 Angular RouteReuseStrategy 缓存(路由)组件的实例代码
2019/11/01 Javascript
解决Vue使用bus总线时,第一次路由跳转时数据没成功传递问题
2020/07/28 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
简单谈谈Python中的反转字符串问题
2016/10/24 Python
Python使用回溯法子集树模板解决爬楼梯问题示例
2017/09/08 Python
用Python shell简化开发
2018/08/08 Python
如何利用Boost.Python实现Python C/C++混合编程详解
2018/11/08 Python
Pycharm以root权限运行脚本的方法
2019/01/19 Python
python中报错&quot;json.decoder.JSONDecodeError: Expecting value:&quot;的解决
2019/04/29 Python
对Python中class和instance以及self的用法详解
2019/06/26 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
pycharm 2019 最新激活方式(pycharm破解、激活)
2020/09/22 Python
如何在django中实现分页功能
2020/04/22 Python
Python偏函数Partial function使用方法实例详解
2020/06/17 Python
浅谈TensorFlow中读取图像数据的三种方式
2020/06/30 Python
详解CSS3中字体平滑处理和抗锯齿渲染
2017/03/29 HTML / CSS
社区健康教育实施方案
2014/03/18 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
群众路线调研报告范文
2014/11/03 职场文书
先进个人事迹材料
2014/12/29 职场文书
结婚保证书(卖身契)
2015/02/26 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
初中同学会致辞
2015/08/01 职场文书
工作总结之小学教师体育工作范文(3篇)
2019/10/07 职场文书
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang