Maison  >  Article  >  développement back-end  >  PHP Learning Écriture de calendrier perpétuel

PHP Learning Écriture de calendrier perpétuel

*文
*文original
2017-12-25 11:45:582277parcourir

De nombreux novices en PHP peuvent être confus lorsqu'ils apprennent pour la première fois, ne sachant pas ce que PHP peut faire et comment le faire. Cet article utilise PHP pour écrire une fonction de calendrier perpétuel afin que tout le monde puisse apprendre à utiliser PHP.

Points clés de l'utilisation de PHP pour implémenter la fonction de calendrier perpétuel :

Obtenir le nombre total de jours du mois en cours à traiter $days

Obtenir le jour du semaine que le premier jour du mois à traiter est $dayofweek

Le rôle de $days : connaissant combien de jours il y a dans le mois à traiter, vous pouvez sortir le nombre de jours via une boucle

Le rôle de $dayofweek : seulement si vous savez que le 1er de chaque mois est une semaine Combien d'espaces (blancs) doivent être affichés avant d'afficher le nombre de jours

Le code de ? La « classe de calendrier perpétuel » est la suivante :

<?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> </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();

Recommandations associées :

Exemple de robot d'exploration CURL d'apprentissage PHP

Mon parcours d'apprentissage PHP, les connaissances d'apprentissage d'un maître PHP

Méthodes et expérience d'apprentissage PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn