极奇怪的,知道bug在哪里,但不知道为何会出现这bug?
PHP code
<?php
class calendar{
private $year;
private $month;
private $daynum;
private $start_day;
function __construct(){
$this->year=isset($_GET["year"])?$_GET["year"]:date("Y");
$this->month=isset($_GET["month"])?$_GET["month"]:date("n");
$this->daynum=date("t",mktime(0,0,0,$this->month,1,$this->year));
$this->start_day=date("w",mktime(0,0,0,$this->month,1,$this->year));
}
function out(){
echo '<table align="center">';
$this->changecalendar();
$this->daylist();
$this->formset();
echo '</table>';
}
function daylist(){
$day=array('日','一','二','三','四','五','六','七');
echo '<tr class="oneline">';
for($i=0;$i<7;$i++){
echo '<td>';
echo $day[$i];
echo '</td>';
}
echo '</tr>';
}
function formset() {
echo '<tr>';
for($j=0; $j<$this->start_day; $j++)
echo '<td> </td>';
$k=$this->start_day;
for($j=1;$j<=$this->daynum;$j++){
if($j==date("j")){
echo '<td class="oneline">'.$j.'</td>';
}else{
echo '<td>'.$j.'</td>';
}
$k++;
if($k%7==0)
echo '</tr><tr>';
}
}
private function changecalendar(){
echo '<tr>';
//这个正常 echo '<td><a href="?'.$this->prevYear($this->year,$this->month).'">'.'<<'.'</a></td>';
//这个不正常 echo '<td><a href="?'.$this->preYear().'">'.'<<'.'</a></td>';
echo '<td colspan="3">'.$this->year.'-'.$this->month.'</td>';
echo '</tr>';
}
private function prevYear($year, $month){
$year=$year-1;
if($year < 1970)
$year = 1970;
return "year={$year}&month={$month}";
}
private function preYear(){
$this->year=$this->year-1;
if($this->year<1970){
$this->year=1970;
}
return "year={$this->year}&month={$this->month}";
}
private function preMonth(){
if($this->month == 1){
$this->year=$this->year - 1;
$this->month=12;
}else{
$this->month=$this->month-1;
}
echo "111";
return 'year='.$this->year.'&month='.$this->month;
}
private function nextYear(){
$this->year=$this->year + 1;
if($this->year>2038){
$this->year=2038;
}
return 'year='.$this->year.'&month='.$this->month;
}
private function nextMonth(){
if($this->month==12){
$this->month=1;
$this->year=$this->year + 1;
}else{
$this->month=$this->month + 1;
}
return 'year='.$this->year.'&month='.$this->month;
}
}