_table=""; $this->_year = $y==0?date("Y"):$y; $this->_month = $m==0?date("m"):str_pad($m,2,'0',STR_PAD_LEFT); if ($this->_month>12){//处理出现月份大于12的情况 $this->_month=1; $this->_year++; } if ($this->_month<1){//处理出现月份小于1的情况 $this->_month=12; $this->_year--; } $this->_days = date("t",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份应有的天数 $this->_dayofweek = date("w",mktime(0,0,0,$this->_month,1,$this->_year));//得到给定的月份的 1号 是星期几 } /** * 输出日历 */ public function showCalendar() { $ycount=ceil(($this->_days+($this->_dayofweek%7))/7); $total=7*$ycount; $headEmpty=$this->_dayofweek; $endEmpty=$total-$this->_days-$headEmpty; //生成日期数组 $list=array(); for($i=1;$i<=$total;$i++){ if($i<=$headEmpty||$i>$total-$endEmpty){ $list[$i]=array(); }else{ $day= str_pad($i-$headEmpty,2,'0',STR_PAD_LEFT); $date="$this->_year-$this->_month-$day"; $list[$i]['date']=$date; $list[$i]['day']=$i-$headEmpty; } } // $data['ycount']=$ycount; // $data['total']=$total; // $data['head']=$headEmpty; // $data['end']=$endEmpty; $data['list']=$list; $data['year']=$this->_year; $data['month']=$this->_month; return $data; } }