Table des matières
PHP 自制日历
Maison développement back-end tutoriel php 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、计算得出日历...
Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si le calendrier double écran win11 n'existe pas sur le deuxième moniteur ? Que dois-je faire si le calendrier double écran win11 n'existe pas sur le deuxième moniteur ? Jun 12, 2024 pm 05:47 PM

Un outil important pour organiser votre travail et votre routine quotidienne dans Windows 11 est l'affichage de l'heure et de la date dans la barre des tâches. Cette fonctionnalité est généralement située dans le coin inférieur droit de l'écran et vous donne un accès instantané à l'heure et à la date. En cliquant sur cette zone, vous pouvez afficher votre calendrier, ce qui facilite la vérification des rendez-vous et des dates à venir sans avoir à ouvrir une application distincte. Cependant, si vous utilisez plusieurs moniteurs, vous risquez de rencontrer des problèmes avec cette fonctionnalité. Plus précisément, alors que l'horloge et la date apparaissent dans la barre des tâches sur tous les moniteurs connectés, la possibilité de cliquer sur la date et l'heure sur un deuxième moniteur pour afficher le calendrier n'est pas disponible. Pour l'instant, cette fonctionnalité ne fonctionne que sur l'écran principal - contrairement à Windows 10, où cliquer sur n'importe quel

Le calendrier Win10 affiche les numéros de semaine Le calendrier Win10 affiche les numéros de semaine Jan 04, 2024 am 08:41 AM

De nombreux utilisateurs souhaitent utiliser l'outil de calendrier Win10 pour vérifier le nombre de jours actuel, mais le calendrier n'affiche pas automatiquement cette fonction. En fait, il suffit d'effectuer des réglages simples pour voir le nombre cumulé de semaines cette année ~ le calendrier Win10 s'affiche. semaines Tutoriel de paramétrage numérique : 1. Saisissez le calendrier dans la recherche dans le coin inférieur gauche du bureau et ouvrez l'application. 2. Dans l'application de calendrier ouverte, cliquez sur l'icône « engrenage » dans le coin inférieur gauche et les paramètres apparaîtront à droite. Nous cliquons sur « Paramètres du calendrier ». 3. Continuez dans les paramètres du calendrier ouvert, recherchez « Numéro de semaine ». puis changez la semaine. Ajustez simplement l'option numérique sur "le premier jour de l'année". 4. Après avoir complété les paramètres ci-dessus, cliquez sur « Semaine » pour voir les statistiques du nombre de semaines de cette année.

Le calendrier Outlook ne se synchronise pas ; Le calendrier Outlook ne se synchronise pas ; Mar 26, 2024 am 09:36 AM

Si votre calendrier Outlook ne parvient pas à se synchroniser avec Google Agenda, Teams, iPhone, Android, Zoom, compte Office, etc., veuillez suivre les étapes suivantes pour résoudre le problème. L'application de calendrier peut être connectée à d'autres services de calendrier tels que Google Calendar, iPhone, Android, Microsoft Office 365, etc. Ceci est très utile car elle peut se synchroniser automatiquement. Mais que se passe-t-il si OutlookCalendar ne parvient pas à se synchroniser avec des calendriers tiers ? Les raisons possibles peuvent être la sélection d'un mauvais calendrier pour la synchronisation, un calendrier non visible, une interférence d'une application en arrière-plan, une application Outlook ou une application de calendrier obsolète, etc. Correctif préliminaire pour le calendrier Outlook qui ne se synchronise pas

Que dois-je faire s'il n'y a pas de rappels contextuels pour les événements du calendrier dans Win10 ? Comment récupérer si les rappels d'événements du calendrier ont disparu dans Win10 ? Que dois-je faire s'il n'y a pas de rappels contextuels pour les événements du calendrier dans Win10 ? Comment récupérer si les rappels d'événements du calendrier ont disparu dans Win10 ? Jun 09, 2024 pm 02:52 PM

Le calendrier peut aider les utilisateurs à enregistrer votre emploi du temps et même à définir des rappels. Cependant, de nombreux utilisateurs se demandent que faire si les rappels d'événements du calendrier n'apparaissent pas dans Windows 10 ? Les utilisateurs peuvent d'abord vérifier l'état de la mise à jour Windows ou vider le cache du Windows App Store pour effectuer l'opération. Laissez ce site présenter soigneusement aux utilisateurs l'analyse du problème du rappel des événements du calendrier Win10 qui n'apparaît pas. Pour ajouter des événements au calendrier, cliquez sur le programme "Calendrier" dans le menu système. Cliquez avec le bouton gauche de la souris sur une date du calendrier. Entrez le nom de l'événement et l'heure du rappel dans la fenêtre d'édition, puis cliquez sur le bouton « Enregistrer » pour ajouter l'événement. Résoudre le problème du rappel d'événement du calendrier Win10 qui n'apparaît pas

Impossible d'ouvrir le calendrier dans le coin inférieur droit de Win10 Impossible d'ouvrir le calendrier dans le coin inférieur droit de Win10 Dec 26, 2023 pm 05:07 PM

Certains amis qui utilisent le système win0 ont rencontré une situation dans laquelle le calendrier win10 ne peut pas être ouvert. Il s'agit simplement d'un problème informatique normal. Il peut être résolu dans les paramètres de confidentialité du système win10. Aujourd'hui, l'éditeur a apporté une solution détaillée. Ci-dessous, jetons un coup d'oeil. Solution au problème selon lequel le calendrier ne peut pas être ouvert dans le coin inférieur droit de Win10 1. Cliquez sur Démarrer dans le système Win10 → cliquez sur le bouton de la liste des programmes ci-dessus → recherchez Pinyin (chinois) R → Calendrier 2. Lors de sa première utilisation , les nouveaux événements ne peuvent pas être ouverts (souris Si vous vous penchez, il n'y aura pas de bleu foncé sélectionné), vous pouvez le définir en toute confidentialité. Cliquez sur l'icône à trois barres dans le coin supérieur gauche du bureau → il y aura un menu de paramètres en bas ; 3. Cliquez sur Confidentialité dans l'interface contextuelle 4. Si vous avez déjà utilisé les paramètres, vous pouvez cliquer sur le bouton ; gauche

Bureau d'achats sans période perdue : nouveaux périphériques de la série calendrier et anniversaire ! Bureau d'achats sans période perdue : nouveaux périphériques de la série calendrier et anniversaire ! Feb 29, 2024 pm 12:00 PM

Le bureau des achats perdus sera mis à jour à 11 heures le 28 février. Les joueurs peuvent se rendre sur Taobao pour rechercher le bureau des achats et sélectionner la catégorie de magasin à acheter. Cette fois, nous vous proposons la série de fêtes d'anniversaire MBCC et les périphériques du calendrier de bureau 2024. ensemble, jetez un œil aux détails du produit cette fois. Bureau d'achats sans période perdue : nouveaux périphériques de la série calendrier et anniversaire ! Il y a du nouveau au Bureau des Achats Perdus ! —Heure de prévente : 11h00 le 28 février 2024 - 23h59 le 13 mars 2024. Adresse d'achat : Taobao recherchez [Bureau d'achat perdu indéfini] et sélectionnez la catégorie [Magasin] pour entrer dans le magasin pour acheter un périphérique ; introduction : Les nouveaux périphériques sortis cette fois sont les périphériques de la série de fêtes d'anniversaire MBCC et du calendrier de bureau 2024. Veuillez cliquer sur l'image longue pour plus de détails. La Direction des Achats présente de nouveaux périphériques – étudiants MBCC

Comment résoudre le problème selon lequel l'heure dans Win11 est toujours inexacte ? Le didacticiel de réglage de l'heure Win11 résout rapidement le problème de l'heure inexacte Comment résoudre le problème selon lequel l'heure dans Win11 est toujours inexacte ? Le didacticiel de réglage de l'heure Win11 résout rapidement le problème de l'heure inexacte Apr 19, 2024 am 09:31 AM

Si votre ordinateur Windows 11 affiche la mauvaise heure, cela peut causer de nombreux problèmes et même vous empêcher de vous connecter à Internet. En effet, certaines applications refusent de s'ouvrir ou de s'exécuter lorsque le système affiche une date et une heure incorrectes. Alors, comment résoudre ce problème ? Jetons un coup d'œil ci-dessous ! Méthode 1 : 1. Nous faisons d'abord un clic droit sur l'espace vide de la barre des tâches ci-dessous et sélectionnons Paramètres de la barre des tâches 2. Recherchez taskbarcorneroverflow3 à droite dans les paramètres de la barre des tâches, puis recherchez l'horloge ou l'horloge au-dessus et sélectionnez pour l'activer. Méthode 2 : 1. Appuyez sur le raccourci clavier win+r pour appeler run, entrez regedit et appuyez sur Entrée pour confirmer. 2. Ouvrez l'éditeur de registre et recherchez HKEY dedans

Comment implémenter le composant de calendrier à l'aide de Vue ? Comment implémenter le composant de calendrier à l'aide de Vue ? Jun 25, 2023 pm 01:28 PM

Vue est un framework front-end très populaire. Il fournit de nombreux outils et fonctions, tels que la création de composants, la liaison de données, la gestion d'événements, etc., qui peuvent aider les développeurs à créer des applications Web efficaces, flexibles et faciles à entretenir. Dans cet article, je vais vous présenter comment implémenter un composant de calendrier à l'aide de Vue. 1. Analyse des exigences Tout d'abord, nous devons analyser les exigences de ce composant de calendrier. Un calendrier de base doit avoir les fonctions suivantes : afficher la page du calendrier du mois en cours ; prendre en charge le passage au mois précédent ou au mois suivant en cliquant sur un certain jour ;

See all articles