| 
//日历类class calendar {
 //当前的年
 private $year;
 //当前的月
 private $month;
 //一个月中第一天是星期几
 private $start_weekday;
 //当前月的天数
 private $days;
 //最大数与最小年数,最大与最小月数
 private $yearMonth = array(2080, 1900, 12, 1);
 //构造函数
 function __construct() {
 if (isset($_GET['year'])) {
 $this->year = $_GET['year'];
 }
 if (isset($_GET['month'])) {
 $this->month = $_GET['month'];
 }
 $this->pnYm($this->year, $this->month);
 $this->days = date('t', mktime(0, 0, 0, $this->month, 1, $this->year));
 $this->start_weekday = date('w', mktime(0, 0, 0, $this->month, 1, $this->year));
 $this->style();
 }
 //输出
 private function style() {
 echo '
 ';$this->weeklist();
 $this->daylist();
 echo '
 ';}
 //年月参数判断
 private function ymCheck($year, $month) {
 if (!is_numeric($year)) {
 $year = date('Y');
 }
 if (!is_numeric($month)) {
 $month = date('m');
 }
 if ($month yearMonth[3]) {
 $month = $this->yearMonth[2];
 $year -= 1;
 }
 if ($month > $this->yearMonth[2]) {
 $month = $this->yearMonth[3];
 $year = intval($year) + 1;
 }
 $year = $year yearMonth[1] ? $this->yearMonth[1] : $year;
 $year = $year > $this->yearMonth[0] ? $this->yearMonth[0] : $year;
 return array($year, $month);
 }
 //上一年、下一年、上一月、下一月
 private function pnYm($year, $month) {
 $ym = $this->ymCheck($year, $month);
 $this->year = $ym[0];
 $this->month = $ym[1];
 }
 //weeklist周列表
 private function weeklist() {
 $week = array('日','一','二','三','四','五','六');
 echo '
 ';';foreach ($week as $val) {
 echo '
 '.$val.''; | }
 echo '
 }
 //daylist天列表
 private function daylist() {
 //年月日导航
 echo '
 ';';echo '
 '; | echo '
 '; | echo '
 '; ';echo '
 | echo '
 '; | echo '
 '; | echo '
        echo ' ';//输出空格(当前一个月第一天前面要空出来的)
 for($i = 0; $i start_weekday; $i++) {
 echo '
 '; | }
 for ($k = 1; $k days; $k++) {
 $i++;
 if ($k == date('d')) {
 echo '
 '.$k.''; | }else {
 echo '
 '.$k.''; | }
 if ($i % 7 == 0) {
 if ($k != $this->days) {
 echo '
 ';';}
 }
 }
 echo '
 }
 }
 ?>
 html+css代码 
	  
		| 代码如下 | 复制代码 |  
		| 
 
 
 PHP日历程序
 
 
 
 
 require 'init.php';
 $calendar = new calendar();
 ?>
 
 
 |  |