PHP完整的日历类(CLASS)

 更新时间:2006年11月27日 00:00:00   作者:  
复制代码 代码如下:

<?php 
class Calendar{ 
/* 
www.jb51.net修正版
*/ 
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数据缓存的使用说明

    本篇文章是对PHP数据缓存的使用进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • thinkphp的钩子的两种配置和两种调用方法

    thinkphp的钩子的两种配置和两种调用方法

    这篇文章主要介绍了thinkphp的钩子的两种配置和两种调用方法,实例讲解的很清晰,有不懂的同学可以学习下
    2021-02-02
  • PHP生成短网址的3种方法代码实例

    PHP生成短网址的3种方法代码实例

    这篇文章主要介绍了PHP生成短网址的3种方法代码实例,分别为纯随机生成法、枚举生成法、62位生成法,需要的朋友可以参考下
    2014-07-07
  • PHP设计模式之适配器模式代码实例

    PHP设计模式之适配器模式代码实例

    这篇文章主要介绍了PHP设计模式之适配器模式代码实例,本文讲解了目标、角色、应用场景、优势等内容,并给出代码实例,需要的朋友可以参考下
    2015-05-05
  • 深入剖析浏览器退出之后php还会继续执行么

    深入剖析浏览器退出之后php还会继续执行么

    览器退出之后php还会继续执行么?下面小编就为大家介绍一下究竟览器退出之后php还会不会继续执行。一起跟随小编过来看看吧
    2016-05-05
  • Yii2数据库操作常用方法小结

    Yii2数据库操作常用方法小结

    这篇文章主要介绍了Yii2数据库操作常用方法,结合实例形式总结分析了Yii2常用的增删查改及配置相关操作技巧,需要的朋友可以参考下
    2017-05-05
  • ThinkPHP路由机制简介

    ThinkPHP路由机制简介

    这篇文章主要介绍了ThinkPHP路由机制,结合实例形式简单分析了ThinkPHP路由机制的原理与相关使用技巧,需要的朋友可以参考下
    2016-03-03
  • 详解HTTP Cookie状态管理机制

    详解HTTP Cookie状态管理机制

    cookie 最早是网景公司的雇员 Lou Montulli 在1993年3月发明,后被 W3C 采纳,目前 cookie 已经成为标准,所有的主流浏览器如 IE、Chrome、Firefox、Opera 等都支持
    2016-01-01
  • php批量删除操作代码分享

    php批量删除操作代码分享

    本文给大家分享的是使用php实现批量删除MySQL数据库内的数据,非常的简单,有需要的小伙伴可以参考下
    2017-02-02
  • PHP CURL 多线程操作代码实例

    PHP CURL 多线程操作代码实例

    这篇文章主要介绍了PHP CURL 多线程操作代码实例,本文直接给出实现代码,需要的朋友可以参考下
    2015-05-05

最新评论