php 实现日历
来源:互联网 发布:熊族软件 编辑:程序博客网 时间:2024/05/16 09:56
转自: http://blog.chinaunix.net/uid-23781137-id-2985238.html
<?php class Calendar{var $YEAR,$MONTH,$DAY;var $COLOR_TODAY = "lightgray"; //当前日期的背景色var $COLOR_THIS_MONTH = "lightgray"; //当前月的背景色var $COLOR_THIS_YEAR = "lightgray"; //当前年的背景色var $NUMS_YEAR = 1; //年份下拉表里可以显示的年份数目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; } //获得方法内指定的日期的星期数 0(表示星期天)到 6(表示星期六)function getWeek($year,$month,$day){ $week=date("w",mktime(0,0,0,$month,$day,$year));//获得星期 return $week;//获得星期 } //为$YEAR,$MONTH,$DAY赋值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")); }//打印日历 function out(){ $this->_env(); $week=$this->getWeek($this->YEAR,$this->MONTH,$this->DAY);//获得日期为星期几 (例如今天为2011-10-31,星期一) $fweek=$this->getWeek($this->YEAR,$this->MONTH,1);//获得此月第一天为星期几 //echo "<div style=\"align:center;margin:0;border:1 solid black;font:9pt\"><table border=1 solid align=center><tr><td colspan='7'> echo "<table border=1 solid align=center><tr><td colspan='7'> <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:$this->COLOR_THIS_MONTH\""; }else{ $select=""; } echo "<option value=\"$ttmpb\" $select>".$this->_MONTH[$ttmpb]."</option>"; } echo "</select> 年份:<select name=\"year\" onchange=\"this.form.submit();\">";//打印年份 for($ctmpa=$this->YEAR-$this->NUMS_YEAR;$ctmpa<=$this->YEAR+$this->NUMS_YEAR;$ctmpa++){ if($ctmpa>2037){ break; } if($ctmpa<1970){ continue; } if(strcmp($ctmpa,$this->YEAR)==0){ $select="selected style=\"background-color:$this->COLOR_THIS_YEAR\""; }else{ $select=""; } echo "<option value=\"$ctmpa\" $select>$ctmpa</option>"; } echo "</select> </form></td></tr><tr>"; for($Tmpa=0;$Tmpa<count($this->WEEK);$Tmpa++){//打印星期标头 echo "<td>".$this->WEEK[$Tmpa]."</td>"; } echo "</tr><tr>"; for($Tmpc=0;$Tmpc<$fweek;$Tmpc++){ echo "<td></td>"; } for($Tmpb=1;$Tmpb<=date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR));$Tmpb++){//打印所有日期 $Tmpb=sprintf("%02d",$Tmpb); if((strcmp($Tmpb,$this->DAY)==0) && ($this->MONTH == date("m")) && ($this->YEAR == date("Y")) ){//获得当前日期,做标记 $flag=" bgcolor='$this->COLOR_TODAY'"; }else{ $flag=" bgcolor='white'"; } if((strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),0)==0) && (1==$Tmpb)){ //第一天是星期日则不用加<tr> echo "<tr><td align=center $flag>$Tmpb</td>"; //星期日则换行,添加行首 }else if(strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),0)==0){ echo "<tr><td align=center $flag>$Tmpb</td>"; //星期日则换行,添加行首 }else if(strcmp($this->getWeek($this->YEAR,$this->MONTH,$Tmpb),6)==0){ echo "<td align=center $flag>$Tmpb</td></tr>";//星期六为行尾 }else{ echo "<td align=center $flag>$Tmpb</td>"; } }//for($Tmpb=1;$Tmpb<=date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR));$Tmpb++) //最后一天是星期六不用再加</tr> if(strcmp($this->getWeek($this->YEAR,$this->MONTH,date("t",mktime(0,0,0,$this->MONTH,$this->DAY,$this->YEAR))),6)==0) echo "</table>"; else echo "</tr></table>"; }//out();}//class Calendar$d = new Calendar();$d->out();?>
- php 实现日历
- php简单实现日历
- php实现一个日历类
- PHP实现的简单日历代码
- PHP实现的简单日历类
- php实现日历超清晰代码
- php日历
- php 日历
- php 日历
- PHP 日历
- 日历实现
- 日历实现
- js+php 实现一款超酷的日历控件
- PHP+JavaScript+HTML实现注册界面表单及日历控件
- php代码日历
- php日历程序
- 一个PHP日历程序
- PHP日历 Calendar
- svm资源
- 交叉编译场景分析(arm-linux)(八)--编译glib
- 如何使编程实现固定文本的国际化
- ubuntu12.04配置Java和NDK环境
- WM_NOTIFY消息
- php 实现日历
- 二次开发的基本要求
- 11-26ADOExecuteReader
- Android之截屏代码
- JavaWEB开发-国际化
- SQLLite (三):sqlite3_get_table,sqlite3_free_table
- Linux设备驱动之I2C架构分析
- struts2运行流程笔记大话
- AVL图解