php 做个简单实用的日历
更新时间:2013年8月3日 23:50 点击:525
<?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中_时间函数 date()
相关文章
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
- 在页面开发中,经常遇到需要用户输入日期的操作。通常的做法是,提供一个文本框(text),让用户输入,然后,编写代码验证输入的数据,检测其是否是日期类型。这样比较麻烦,同时,用户输入日期的操作也不是很方便,影响用户体验。如果使...2015-10-30
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 本文实例讲述了php实现的日历程序。分享给大家供大家参考。具体如下:<?php /* * php 输出日历程序 */ header("Content-type: text/html;charset=utf-8"); $year=(!isset($_GET['year'])||$_GET['year']=="")?...2015-10-30
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
- 今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
- 这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
- 这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法...2021-08-22
- 这篇文章主要为大家详细介绍了php图片添加文字水印实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-03-17