Heim  >  Artikel  >  php教程  >  PHP万年历实现程序代码

PHP万年历实现程序代码

WBOY
WBOYOriginal
2016-05-25 16:43:211868Durchsuche

使用PHP实现万年历功能的要点:

得到当前要处理的月份总共有多少天$days,得到当前要处理的月份的一号是星期几$dayofweek,$days的作用:知道要处理的月份共有多少天,就可以通过循环输出天数了,$dayofweek的作用:只有知道每个月的1号是星期几,才能知道在输出天数之前需要输出多少空格(空白).

PHP完整实例代码如下:

<?php 
	/** 
	 * PHP万年历 
	 * @author Fly 2012/10/16 
	 */ 
	class Calendar{ 
	    protected $_table;//table表格 
	    protected $_currentDate;//当前日期 
	    protected $_year;    //年 
	    protected $_month;    //月 
	    protected $_days;    //给定的月份应有的天数 
	    protected $_dayofweek;//给定月份的 1号 是星期几 
	    /** 
	     * 构造函数 
	     */ 
	    public function __construct()  
	    { 
	        $this->_table=""; 
	        $this->_year  = isset($_GET["y"])?$_GET["y"]:date("Y"); 
	        $this->_month = isset($_GET["m"])?$_GET["m"]:date("m"); 
	        if ($this->_month>12){//处理出现月份大于12的情况 
	            $this->_month=1; 
	            $this->_year++; 
	        } 
	        if ($this->_month<1){//处理出现月份小于1的情况 
	            $this->_month=12; 
	            $this->_year--; 
	        } 
	        $this->_currentDate = $this->_year.&#39;年&#39;.$this->_month.&#39;月份&#39;;//当前得到的日期信息 
	        $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号 是星期几 
	    } 
	    /** 
	     * 输出标题和表头信息 
	     */ 
	    protected function _showTitle() 
	    { 
	        $this->_table="<table><thead><tr align=&#39;center&#39;><th colspan=&#39;7&#39;>".$this->_currentDate."</th></tr></thead>"; 
	        $this->_table.="<tbody><tr>"; 
	        $this->_table .="<td style=&#39;color:red&#39;>星期日</td>"; 
	        $this->_table .="<td>星期一</td>"; 
	        $this->_table .="<td>星期二</td>"; 
	        $this->_table .="<td>星期三</td>"; 
	        $this->_table .="<td>星期四</td>"; 
	        $this->_table .="<td>星期五</td>"; 
	        $this->_table .="<td style=&#39;color:red&#39;>星期六</td>"; 
	        $this->_table.="</tr>"; 
	    } 
	    /** 
	     * 输出日期信息 
	     * 根据当前日期输出日期信息 
	     */ 
	    protected function _showDate() 
	    { 
	        $nums=$this->_dayofweek+1; 
	        for ($i=1;$i<=$this->_dayofweek;$i++){//输出1号之前的空白日期 
	            $this->_table.="<td>&nbsp</td>"; 
	        } 
	        for ($i=1;$i<=$this->_days;$i++){//输出天数信息 
	            if ($nums%7==0){//换行处理:7个一行 
	                $this->_table.="<td>$i</td></tr><tr>";     
	            }else{ 
	                $this->_table.="<td>$i</td>"; 
	            } 
	            $nums++; 
	        } 
	        $this->_table.="</tbody></table>"; 
	        $this->_table.="<h3><a href=&#39;?y=".($this->_year)."&m=".($this->_month-1)."&#39;>上一月</a>   "; 
	        $this->_table.="<a href=&#39;?y=".($this->_year)."&m=".($this->_month+1)."&#39;>下一月</a></h3>"; 
	    } 
	    /** 
	     * 输出日历 
	     */ 
	    public function showCalendar() 
	    { 
	        $this->_showTitle(); 
	        $this->_showDate(); 
	        echo $this->_table; 
	    } 
	} 
	$calc=new Calendar(); 
	$calc->showCalendar(); 

教程地址:

欢迎转载!但请带上文章地址^^

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:PHP ord($str)>0x80的自我理解 Nächster Artikel:php无限级分类实例