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 相关文章推荐
phpfans留言版用到的数据操作类和分页类
Jan 04 PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 PHP
如何使用php绘制在图片上的正余弦曲线
Jun 08 PHP
PHP随机生成随机个数的字母组合示例
Jan 14 PHP
推荐一款MAC OS X 下php集成开发环境mamp
Nov 08 PHP
通过修改配置真正解决php文件上传大小限制问题(nginx+php)
Sep 23 PHP
yii,CI,yaf框架+smarty模板使用方法
Dec 29 PHP
PHP中Laravel 关联查询返回错误id的解决方法
Apr 01 PHP
利用 fsockopen() 函数开放端口扫描器的实例
Aug 19 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例
Sep 03 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 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开发过程中常用函数收藏
2009/12/14 PHP
PHP中操作ini配置文件的方法
2013/04/25 PHP
在PHP中使用X-SendFile头让文件下载更快
2014/06/01 PHP
取得单条网站评论以数组形式进行输出
2014/07/28 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
让firefox支持IE的一些方法的javascript扩展函数代码
2010/01/02 Javascript
jQuery学习笔记之Helloworld
2010/12/22 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
js打造数组转json函数
2015/01/14 Javascript
JavaScript中Function详解
2015/02/27 Javascript
浅谈JavaScript中变量和函数声明的提升
2016/08/09 Javascript
vue.js入门(3)——详解组件通信
2016/12/02 Javascript
javascript 中null和undefined区分和比较
2017/04/19 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
记一次vue去除#问题处理经过小结
2019/01/24 Javascript
js实现ATM机存取款功能
2020/10/27 Javascript
vue点击按钮动态创建与删除组件功能
2019/12/29 Javascript
Angular8 简单表单验证的实现示例
2020/06/03 Javascript
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
2016/03/19 Python
Python 实现网页自动截图的示例讲解
2018/05/17 Python
Python闭包执行时值的传递方式实例分析
2018/06/04 Python
Python自定义装饰器原理与用法实例分析
2018/07/16 Python
python matplotlib画盒图、子图解决坐标轴标签重叠的问题
2020/01/19 Python
pytorch加载语音类自定义数据集的方法教程
2020/11/10 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Calphalon美国官网:美国顶级锅具品牌
2020/02/05 全球购物
妇科医生自荐信
2013/11/05 职场文书
入团者的自我评价分享
2013/12/02 职场文书
党员教师自我剖析材料
2014/09/29 职场文书
人事主管岗位职责
2015/02/04 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
2016年6月份红领巾广播稿
2015/12/21 职场文书
MySQL pt-slave-restart工具的使用简介
2021/04/07 MySQL
Ubuntu Server 安装Tomcat并配置systemctl
2022/04/28 Servers