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中图片等比缩放的实例
Mar 24 PHP
php生成EAN_13标准条形码实例
Nov 13 PHP
php实现图形显示Ip地址的代码及注释
Jan 20 PHP
PHP处理SQL脚本文件导入到MySQL的代码实例
Mar 17 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
PHP中$this和$that指针使用实例
Jan 06 PHP
PHP的关于变量和日期处理的一些面试题目整理
Aug 10 PHP
Yii2使用swiftmailer发送邮件的方法
May 03 PHP
php实现微信模拟登陆、获取用户列表及群发消息功能示例
Jun 28 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
Oct 15 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 16 PHP
PHP中echo与print区别点整理
Mar 09 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
破解图片防盗链的代码(asp/php)测试通过
2010/07/02 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php批量删除超链接的实现方法
2015/10/19 PHP
PHP信号量基本用法实例详解
2016/02/12 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
在Ubuntu 18.04上安装PHP 7.3 7.2和7.0的方法
2019/04/09 PHP
ThinkPHP3.2框架操作Redis的方法分析
2019/05/05 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
js的闭包的一个示例说明
2008/11/18 Javascript
Javascript 通过json自动生成Dom的代码
2010/04/01 Javascript
JQuery select标签操作代码段
2010/05/16 Javascript
javaScript 利用闭包模拟对象的私有属性
2011/12/29 Javascript
JS实现将人民币金额转换为大写的示例代码
2014/02/13 Javascript
JavaScript中的数值范围介绍
2014/12/29 Javascript
js实现精确到秒的日期选择器完整实例
2016/04/30 Javascript
js面向对象实现canvas制作彩虹球喷枪效果
2016/09/24 Javascript
微信小程序 购物车简单实例
2016/10/24 Javascript
jQuery无缝轮播图代码
2016/12/22 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
一个小示例告诉你Python语言的优雅之处
2014/07/04 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
python爬虫爬取网页表格数据
2018/03/07 Python
浅谈Pandas 排序之后索引的问题
2018/06/07 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python count函数使用方法实例解析
2020/03/23 Python
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
EJB timer的种类
2014/10/28 面试题
行政助理的职责
2013/11/14 职场文书
彩色的非洲教学反思
2014/02/18 职场文书
幼儿园中班下学期评语
2014/04/18 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
小学生教师节广播稿
2015/08/19 职场文书
创业计划书之川味火锅店
2019/09/02 职场文书