Inhaltsverzeichnis
PHP 自制日历
Heim Backend-Entwicklung PHP-Tutorial PHP 自制日历_PHP教程

PHP 自制日历_PHP教程

Jul 13, 2016 am 10:18 AM
日历

PHP 自制日历

一、计算数据
 
 
 
1、new一个Calendar类
 
2、初始化两个下拉框中的数据,年份与月份
 
3、初始化要搜索的年份和月份
 
4、计算得出日历中每一天的数据信息,包括css、天数
 
复制代码
    require_once 'calendar.php';
    $util = new Calendar();
    $years = array(2012, 2013, 2014, 2015, 2016);//年份选择自定义
    $months = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);//月份数组
    //获取post的年份数据
    if(empty($_POST['ddlYear'])) {
        $year = date('Y');
    }else {
        $year = $_POST['ddlYear'];
    }
    //获取post的月份数据
    if(empty($_POST['ddlMonth'])) {
        $month = date('n');
    }else {
        $month = $_POST['ddlMonth'];
    }
 
    $calendar = $util->threshold($year, $month);//获取各个边界值
    $caculate = $util->caculate($calendar);//计算日历的天数与样式
    $draws = $util->draw($caculate);//画表格,设置table中的tr与td
?>
复制代码
 
 
二、html展示
 
 
 
1、休息天的背景色是不同的,不是当前搜索年月的天数字体颜色也是不同的
 
2、div中做初始化年份与月份的下拉框的操作,并选中当前要搜索的年月
 
3、数据已计算好,哪个td属于哪个tr也已做好,直接将table打印出来即可
 
复制代码
  
       
       
           
       
       
       
       
           
       
       
       
   
   
       
               
                   
                   
                   
                   
                   
                   
                   
               
       
       
           
               
               
                   
                   
               
           
       
   
                       

                   
复制代码
 
 
三、Calendar类
 
 
 
1、threshold方法,生成日历的各个边界值
 
  1)计算这个月总天数
 
  2)计算这个月第一天与最后一天,各是星期几
 
  3)计算日历中的第一个日期与最后一个日期
 
复制代码
  /**
     * @deprecated 生成日历的各个边界值
     * @param string $year
     * @param string $month
     * @return array
     */
    function threshold($year, $month) {
        $firstDay = mktime(0, 0, 0, $month, 1, $year);
        $lastDay = strtotime('+1 month -1 day', $firstDay);
        //取得天数  
        $days = date("t", $firstDay);
        //取得第一天是星期几
        $firstDayOfWeek = date("N", $firstDay);
        //获得最后一天是星期几
        $lastDayOfWeek = date('N', $lastDay);
        
        //上一个月最后一天
        $lastMonthDate = strtotime('-1 day', $firstDay);
        $lastMonthOfLastDay = date('d', $lastMonthDate);
        //下一个月第一天
        $nextMonthDate = strtotime('+1 day', $lastDay);
        $nextMonthOfFirstDay = strtotime('+1 day', $lastDay);
        
        //日历的第一个日期
        if($firstDayOfWeek == 7)
            $firstDate = $firstDay;
        else 
            $firstDate = strtotime('-'. $firstDayOfWeek .' day', $firstDay);
        //日历的最后一个日期
        if($lastDayOfWeek == 6)
            $lastDate = $lastDay;
        elseif($lastDayOfWeek == 7)    
            $lastDate = strtotime('+6 day', $lastDay);
        else
            $lastDate = strtotime('+'.(6-$lastDayOfWeek).' day', $lastDay);
        
        return array(
                'days' => $days, 
                'firstDayOfWeek' => $firstDayOfWeek, 
                'lastDayOfWeek' => $lastDayOfWeek,
                'lastMonthOfLastDay' => $lastMonthOfLastDay,
                'firstDate' => $firstDate,
                'lastDate' => $lastDate,
                'year' => $year,
                'month' => $month
        );
    }
复制代码
 
 
2、caculate方法,计算日历的天数与样式
 
  1)将上个月的天数计算出来,本月第一天的星期不是星期天的话,就需要根据上个月的最后一天计算
 
  2)将本月的天数遍历出来,如果是休息天就加上特殊的css样式
 
  3)将下个月的天数计算出来,分三种情况,星期日、星期六和工作日
 
复制代码
  /**
     * @author Pwstrick
   * @param array $calendar 通过threshold方法计算后的数据
     * @deprecated 计算日历的天数与样式
     */
    function caculate($calendar) {
        $days = $calendar['days'];
        $firstDayOfWeek = $calendar['firstDayOfWeek'];//本月第一天的星期
        $lastDayOfWeek = $calendar['lastDayOfWeek'];//本月最后一天的星期
        $lastMonthOfLastDay = $calendar['lastMonthOfLastDay'];//上个月的最后一天
        $year = $calendar['year'];
        $month = $calendar['month'];
        
        $dates = array();
        if($firstDayOfWeek != 7) {
            $lastDays = array();
            $current = $lastMonthOfLastDay;//上个月的最后一天
            for ($i = 0; $i
                array_push($lastDays, $current);//添加上一个月的日期天数
                $current--;
            }
            $lastDays = array_reverse($lastDays);//反序
            foreach ($lastDays as $index => $day) {
                array_push($dates, array('day' => $day, 'tdclass' => ($index ==0 ?'rest':''), 'pclass' => 'outter'));
            }
        }
        
        //本月日历信息
        for ($i = 1; $i
            $isRest = $this->_checkIsRest($year, $month, $i);
            //判断是否是休息天
            array_push($dates, array('day' => $i, 'tdclass' => ($isRest ?'rest':''), 'pclass' => ''));
        }
        
        //下月日历信息
        if($lastDayOfWeek == 7) {//最后一天是星期日
            $length = 6;
        }
        elseif($lastDayOfWeek == 6) {//最后一天是星期六
            $length = 0;
        }else {
            $length = 6 - $lastDayOfWeek;
        }
        for ($i = 1; $i
            array_push($dates, array('day' => $i, 'tdclass' => ($i==$length ?'rest':''), 'pclass' => 'outter'));
        }
        
        return $dates;
    }
复制代码
 
 
3、draw方法,画表格,设置table中的tr与td
 
  1)数据将要用table标签来显示,所以这里要将各个tr下面的td排列好
 
  2)$index % 7 == 0 计算表格每行的第一列
 
  3)$index % 7 == 6 || $index == ($length-1) 计算每行的最后一列,或$caculate的最后一个数据
 
  4)将中间行添加到$tr中,就是每一行的array
 
复制代码
  /**
     * @author Pwstrick
     * @param array $caculate 通过caculate方法计算后的数据
     * @deprecated 画表格,设置table中的tr与td
     */
    function draw($caculate) {
        $tr = array();
        $length = count($caculate);
        $result = array();
        foreach ($caculate as $index => $date) {
            if($index % 7 == 0) {//第一列
                $tr = array($date);
            }elseif($index % 7 == 6 || $index == ($length-1)) {
                array_push($tr, $date);
                array_push($result, $tr);//添加到返回的数据中
                $tr = array();//清空数组列表
            }else {
                array_push($tr, $date);
            }
        }
        return $result;
    }

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/885672.htmlTechArticlePHP 自制日历 一、计算数据 1、new一个Calendar类 2、初始化两个下拉框中的数据,年份与月份 3、初始化要搜索的年份和月份 4、计算得出日历...
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was soll ich tun, wenn der Win11-Dual-Screen-Kalender auf dem zweiten Monitor nicht vorhanden ist? Was soll ich tun, wenn der Win11-Dual-Screen-Kalender auf dem zweiten Monitor nicht vorhanden ist? Jun 12, 2024 pm 05:47 PM

Ein wichtiges Tool zur Organisation Ihres Arbeits- und Arbeitsalltags in Windows 11 ist die Anzeige von Uhrzeit und Datum in der Taskleiste. Diese Funktion befindet sich normalerweise in der unteren rechten Ecke des Bildschirms und ermöglicht Ihnen den sofortigen Zugriff auf Uhrzeit und Datum. Durch Klicken auf diesen Bereich können Sie Ihren Kalender aufrufen und so die Überprüfung bevorstehender Termine und Termine erleichtern, ohne eine separate App öffnen zu müssen. Wenn Sie jedoch mehrere Monitore verwenden, können Probleme mit dieser Funktion auftreten. Während die Uhrzeit und das Datum auf allen angeschlossenen Monitoren in der Taskleiste angezeigt werden, ist die Möglichkeit, auf einem zweiten Monitor auf Datum und Uhrzeit zu klicken, um den Kalender anzuzeigen, nicht verfügbar. Derzeit funktioniert diese Funktion nur auf der Hauptanzeige – im Gegensatz zu Windows 10, wo auf eine beliebige Schaltfläche geklickt wird

Der Win10-Kalender zeigt Wochennummern an Der Win10-Kalender zeigt Wochennummern an Jan 04, 2024 am 08:41 AM

Viele Benutzer möchten das Win10-Kalendertool verwenden, um die aktuelle Anzahl der Tage zu überprüfen, aber der Kalender zeigt diese Funktion nicht automatisch an. Tatsächlich müssen wir nur einfache Einstellungen vornehmen, um die kumulierte Anzahl der Wochen in diesem Jahr anzuzeigen Wochen Tutorial zur digitalen Einstellung: 1. Geben Sie in der Suche in der unteren linken Ecke des Desktops Kalender ein und öffnen Sie die Anwendung. 2. Klicken Sie in der geöffneten Kalenderanwendung auf das „Zahnrad“-Symbol in der unteren linken Ecke. Die Einstellungen werden rechts angezeigt. Wir klicken auf „Kalendereinstellungen“. 3. Fahren Sie in den geöffneten Kalendereinstellungen fort und suchen Sie nach „Wochennummer“. und dann die Woche ändern. Passen Sie einfach die Zahlenoption auf „der erste Tag des Jahres“ an. 4. Nachdem Sie die obigen Einstellungen vorgenommen haben, klicken Sie auf „Woche“, um die Wochenstatistiken für dieses Jahr anzuzeigen.

Outlook-Kalender wird nicht synchronisiert; Outlook-Kalender wird nicht synchronisiert; Mar 26, 2024 am 09:36 AM

Wenn Ihr Outlook-Kalender nicht mit Google Kalender, Teams, iPhone, Android, Zoom, Office-Konto usw. synchronisiert werden kann, führen Sie bitte die folgenden Schritte aus, um das Problem zu beheben. Die Kalender-App kann mit anderen Kalenderdiensten wie Google Kalender, iPhone, Android, Microsoft Office 365 usw. verbunden werden. Dies ist sehr nützlich, da eine automatische Synchronisierung möglich ist. Was aber, wenn die Synchronisierung von OutlookCalendar mit Kalendern von Drittanbietern fehlschlägt? Mögliche Gründe hierfür könnten die Auswahl des falschen Kalenders für die Synchronisierung, ein nicht sichtbarer Kalender, Störungen in der Hintergrundanwendung, eine veraltete Outlook-Anwendung oder Kalenderanwendung usw. sein. Vorläufige Lösung für den Fehler, dass der Outlook-Kalender nicht synchronisiert wird

Was soll ich tun, wenn in Win10 keine Popup-Erinnerungen für Kalenderereignisse vorhanden sind? Wie kann ich die Wiederherstellung durchführen, wenn in Win10 keine Erinnerungen an Kalenderereignisse vorhanden sind? Was soll ich tun, wenn in Win10 keine Popup-Erinnerungen für Kalenderereignisse vorhanden sind? Wie kann ich die Wiederherstellung durchführen, wenn in Win10 keine Erinnerungen an Kalenderereignisse vorhanden sind? Jun 09, 2024 pm 02:52 PM

Der Kalender kann Benutzern dabei helfen, Ihren Zeitplan aufzuzeichnen und sogar Erinnerungen festzulegen. Viele Benutzer fragen sich jedoch, was zu tun ist, wenn in Windows 10 keine Erinnerungen an Kalenderereignisse angezeigt werden. Benutzer können zunächst den Windows-Update-Status überprüfen oder den Windows App Store-Cache leeren, um den Vorgang auszuführen. Lassen Sie diese Website den Benutzern die Analyse des Problems, dass die Kalenderereigniserinnerung in Win10 nicht angezeigt wird, sorgfältig vorstellen. Um Kalenderereignisse hinzuzufügen, klicken Sie im Systemmenü auf das Programm „Kalender“. Klicken Sie mit der linken Maustaste auf ein Datum im Kalender. Geben Sie im Bearbeitungsfenster den Namen des Ereignisses und die Erinnerungszeit ein und klicken Sie auf die Schaltfläche „Speichern“, um das Ereignis hinzuzufügen. Lösung des Problems, dass die Erinnerung an Win10-Kalenderereignisse nicht angezeigt wird

Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Feb 29, 2024 pm 12:00 PM

Es wurde bestätigt, dass das Lost Time-Einkaufsbüro am 28. Februar um 11 Uhr aktualisiert wird. Spieler können nach Taobao gehen, um nach dem Lost Time-Einkaufsbüro zu suchen und die Store-Kategorie zum Kauf auszuwählen. Dieses Mal präsentieren wir Ihnen die MBCC-Geburtstagsfeierserie und Peripheriegeräte für den Tischkalender 2024 kommen zusammen. Schauen Sie sich dieses Mal die Produktdetails an. Keine Zeit verloren Einkaufsbüro: Neue Kalender- und Geburtstagsserien-Peripheriegeräte! Es gibt etwas Neues im Lost Procurement Office! – Vorverkaufszeit: 28. Februar 2024, 11:00 Uhr – 13. März 2024, 23:59 Uhr. Kaufadresse: Taobao, suchen Sie nach [Unbestimmtes verlorenes Einkaufsbüro] und wählen Sie die Kategorie [Geschäft] aus, um das Geschäft zum Kauf von Peripheriegeräten zu betreten Einführung: Die neuen Peripheriegeräte, die dieses Mal veröffentlicht werden, sind MBCC-Geburtstagsfeierserien und 2024-Tischkalender-Peripheriegeräte. Klicken Sie bitte auf das lange Bild, um weitere Informationen zu erhalten. Das Einkaufsbüro stellt neue Peripheriegeräte vor – MBCC-Studenten

Der Kalender in der unteren rechten Ecke von Win10 kann nicht geöffnet werden Der Kalender in der unteren rechten Ecke von Win10 kann nicht geöffnet werden Dec 26, 2023 pm 05:07 PM

Einige Freunde, die das Win0-System verwenden, sind auf die Situation gestoßen, dass der Win10-Kalender nicht geöffnet werden kann. Dies ist nur ein normaler Computerfehler. Er kann in den Datenschutzeinstellungen des Win10-Systems behoben werden. Unten werfen wir einen Blick darauf. Lösung für das Problem, dass der Kalender in der unteren rechten Ecke von Win10 nicht geöffnet werden kann 1. Klicken Sie im Win10-System auf Start → Klicken Sie oben auf die Programmlistenschaltfläche → Suchen Sie nach Pinyin (Chinesisch) R → Kalender 2. Bei der ersten Verwendung , neue Termine dürfen nicht geöffnet werden (Maus Wenn Sie sich nach oben beugen, wird kein Dunkelblau ausgewählt), Sie können es auf Privatsphäre einstellen. Klicken Sie auf das Symbol mit den drei Balken in der oberen linken Ecke des Desktops → unten wird ein Einstellungsmenü angezeigt. 3. Klicken Sie in der Popup-Oberfläche auf „Datenschutz“. 4. Wenn Sie zuvor Einstellungen verwendet haben, können Sie auf klicken links

Wie kann das Problem gelöst werden, dass die Zeit in Win11 immer ungenau ist? Das Win11-Tutorial zur Zeitanpassung löst schnell das Problem der ungenauen Zeit Wie kann das Problem gelöst werden, dass die Zeit in Win11 immer ungenau ist? Das Win11-Tutorial zur Zeitanpassung löst schnell das Problem der ungenauen Zeit Apr 19, 2024 am 09:31 AM

Wenn Ihr Windows 11-Computer die falsche Uhrzeit anzeigt, kann das viele Probleme verursachen und Sie sogar daran hindern, eine Verbindung zum Internet herzustellen. Tatsächlich verweigern einige Anwendungen das Öffnen oder Ausführen, wenn das System ein falsches Datum und eine falsche Uhrzeit anzeigt. Wie soll dieses Problem also gelöst werden? Werfen wir einen Blick nach unten! Methode 1: 1. Wir klicken zuerst mit der rechten Maustaste auf die leere Stelle der Taskleiste unten und wählen „Taskleisteneinstellungen“ aus. 2. Suchen Sie rechts in den Taskleisteneinstellungen nach „taskbarcorneroverflow3“, suchen Sie dann nach „Uhr“ oder „Uhr“ darüber und wählen Sie „Einschalten“. Methode 2: 1. Drücken Sie die Tastenkombination Win+R, um Ausführen aufzurufen, geben Sie regedit ein und drücken Sie zur Bestätigung die Eingabetaste. 2. Öffnen Sie den Registrierungseditor und suchen Sie darin HKEY

So richten Sie einen Kalender für Windows 10 ein So richten Sie einen Kalender für Windows 10 ein Dec 22, 2023 pm 12:21 PM

Win10 Calendar ist eine sehr einfach zu bedienende Software mit integrierter Kalenderfunktion, mit der wir jederzeit und überall das Datum überprüfen können. Bei Bedarf können wir auch den Mondkalender usw. einstellen und die aktuelle Woche überprüfen Es ist sehr praktisch. So richten Sie den Win10-Kalender ein: 1. Suchen Sie in der Menüoberfläche nach „Kalender“, um die Benutzeroberfläche aufzurufen. Wenn Sie aufgefordert werden, ein Konto zu verknüpfen, klicken Sie auf „Gehe zum Kalender“, um den Vorgang zu überspringen. 2. Klicken Sie auf die Schaltfläche „Zahnrad“ in der unteren linken Ecke. Die Einstellungsoberfläche wird automatisch rechts angezeigt und wir können sie einrichten. Häufig gestellte Fragen zum Win10-Kalender Wo stellt man den Kalender auf Chinesisch ein? So platzieren Sie den Kalender auf dem Desktop, um die Wochennummer anzuzeigen Kalender Personalisierte Einstellungen Einstellungen Sonntag

See all articles