PHP完整的日历类(CLASS)

所属分类: 网络编程 / PHP编程 阅读数: 1738
收藏 0 赞 0 分享
复制代码 代码如下:

<?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(); 
?> 
更多精彩内容其他人还在看

TP5(thinkPHP5)框架基于ajax与后台数据交互操作简单示例

这篇文章主要介绍了TP5(thinkPHP5)框架基于ajax与后台数据交互操作,结合实例形式分析了thinkPHP5前端基于jQuery的ajax数据提交及后台数据接收、处理相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP利用Mysql锁解决高并发的方法

这篇文章主要介绍了PHP利用Mysql锁解决高并发的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

php 后端实现JWT认证方法示例

这篇文章主要介绍了php 后端实现JWT认证方法示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
收藏 0 赞 0 分享

ThinkPHP框架实现定时执行任务的两种方法分析

这篇文章主要介绍了ThinkPHP框架实现定时执行任务的两种方法,结合实例形式分析了2种被动执行定时任务的相关操作技巧与注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP命名空间与自动加载类详解

这篇文章主要介绍了PHP命名空间与自动加载类,结合实例形式详细分析了php自动加载类与命名空间原理、使用方法及相关操作注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP时间处理类操作示例

这篇文章主要介绍了PHP时间处理类,结合实例形式分析了DateTime、DateTimeZone、DateInterval及DatePeriod等常用日期时间处理类简单操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

利用PHP扩展Xhprof分析项目性能实践教程

XHProf是Facebook开发的性能调试工具,能帮助直观的统计显示PHP程序执行中各方法函数调用次数和消耗时间,以方便我们排查性能瓶颈并进行调优。下面这篇文章主要给大家介绍了关于利用PHP扩展Xhprof分析项目性能实践的相关资料,需要的朋友可以参考下
收藏 0 赞 0 分享

Django 标签筛选的实现代码(一对多、多对多)

这篇文章主要介绍了Django 标签筛选的实现代码(一对多、多对多),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP使用pdo实现事务处理操作示例

这篇文章主要介绍了PHP使用pdo实现事务处理操作,结合实例形式较为详细的分析了php基于pdo实现事务处理的相关原理与操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

thinkPHP框架实现类似java过滤器的简单方法示例

这篇文章主要介绍了thinkPHP框架实现类似java过滤器的简单方法,结合实例形式分析了thinkPHP基于继承实现的登录验证功能相关操作方法,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多