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 25 PHP
PHP4和PHP5共存于一系统
Nov 17 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
Jun 02 PHP
php设计模式 Proxy (代理模式)
Jun 26 PHP
QQ登录 PHP OAuth示例代码
Jul 20 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
解析php开发中的中文编码问题
Aug 08 PHP
PHP远程采集图片详细教程
Jul 01 PHP
PHP实现数组递归转义的方法
Aug 28 PHP
php去除html标记的原生函数详解
Jan 27 PHP
使用GD库生成带阴影文字的图片
Mar 27 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 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
一个用于mysql的数据库抽象层函数库
2006/10/09 PHP
php array_search() 函数使用
2010/04/13 PHP
网站用php实现paypal整合方法
2010/11/28 PHP
discuz的php防止sql注入函数
2011/01/17 PHP
关于IIS php调用com组件的权限问题
2012/01/11 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
Dwz与thinkphp整合下的数据导出到Excel实例
2014/12/04 PHP
PHP微信支付实例解析
2016/07/22 PHP
JavaScript 调试器简介
2009/02/21 Javascript
动态创建script在IE中缓存js文件时导致编码的解决方法
2014/05/04 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
jQuery中:disabled选择器用法实例
2015/01/04 Javascript
jquery中filter方法用法实例分析
2015/02/06 Javascript
WebGL利用FBO完成立方体贴图效果完整实例(附demo源码下载)
2016/01/26 Javascript
vue.js+boostrap项目实践(案例详解)
2016/09/21 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
jQuery条件分页 代替离线查询(附代码)
2017/08/17 jQuery
浅析为什么a=&quot;abc&quot; 不等于 a=new String(&quot;abc&quot;)
2017/10/25 Javascript
BootstrapValidator验证用户名已存在(ajax)
2019/11/08 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JavaScript实现串行请求的示例代码
2020/09/14 Javascript
[04:27]2014DOTA2国际邀请赛 NAVI战队官方纪录片
2014/07/21 DOTA
python插入排序算法的实现代码
2013/11/21 Python
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
django model去掉unique_together报错的解决方案
2016/10/18 Python
Python实现简单过滤文本段的方法
2017/05/24 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
卡塔尔航空官方网站:Qatar Airways
2017/02/08 全球购物
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
职工运动会邀请函
2014/02/02 职场文书
物理教育专业求职信
2014/06/25 职场文书
先进党组织事迹材料
2014/12/26 职场文书
保研导师推荐信
2015/03/25 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
简单且有用的Python数据分析和机器学习代码
2021/07/02 Python
浅析python中特殊文件和特殊函数
2022/02/24 Python