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的SQL注入实现(测试代码安全不错)
Feb 27 PHP
PHP+Mysql树型结构(无限分类)数据库设计的2种方式实例
Jul 15 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
phpQuery让php处理html代码像jQuery一样方便
Jan 06 PHP
百万级别知乎用户数据抓取与分析之PHP开发
Sep 28 PHP
php判断邮箱地址是否存在的方法
Feb 13 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
PHP中单例模式与工厂模式详解
Feb 17 PHP
LAMP环境使用Composer安装Laravel的方法
Mar 25 PHP
php实现页面纯静态的实例代码
Jun 21 PHP
Laravel框架中Blade模板的用法示例
Aug 30 PHP
浅谈PHP中如何实现Hook机制
Nov 14 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导入大量数据到mysql性能优化技巧
2014/12/29 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
PHP8.0新功能之Match表达式的使用
2020/07/19 PHP
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
javascript和HTML5利用canvas构建猜牌游戏实现算法
2013/07/17 Javascript
js取得html iframe中的元素和变量值
2014/06/30 Javascript
实例分析js和C#中使用正则表达式匹配a标签
2014/11/26 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
JS模拟Dialog弹出浮动框效果代码
2015/10/16 Javascript
JavaScript中的this机制
2016/01/30 Javascript
jquery获取复选框的值的简单实例
2016/05/26 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
js cookie实现记住密码功能
2017/01/17 Javascript
JavaScript拖动层Div代码
2017/03/01 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
async/await地狱该如何避免详解
2018/05/10 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
js实现列表按字母排序
2020/08/11 Javascript
[04:29]2016国际邀请赛中国区预选赛Ehome战队教练采访
2016/06/27 DOTA
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
python实现从ftp服务器下载文件的方法
2015/04/30 Python
Python实现Linux命令xxd -i功能
2016/03/06 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
基于django2.2连oracle11g解决版本冲突的问题
2020/07/02 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
英国最大的在线蜡烛商店:Candles Direct
2019/03/26 全球购物
行政专员岗位职责
2014/01/02 职场文书
行政部工作岗位职责范本
2014/03/05 职场文书
白莲教口号
2014/06/18 职场文书
2015年七年级班主任工作总结
2015/05/21 职场文书
诚信考试主题班会
2015/08/17 职场文书
关于环保的广播稿
2015/12/17 职场文书
idea下配置tomcat避坑详解
2022/04/12 Servers
MySQL 逻辑备份 into outfile
2022/05/15 MySQL