Développement PHP pour créer un calendrier simple pour calculer le nombre de jours et le style du calendrier
Personnalisez la méthode de calcul de la fonction pour calculer le nombre de jours et le style du calendrier.
1) Calculez le nombre de jours du mois dernier. Si le premier jour de ce mois n'est pas un dimanche, vous devez le calculer en fonction du dernier jour du mois dernier
2) Calculer le nombre de jours dans ce mois Le nombre de jours est parcouru, et s'il s'agit d'un jour de repos, ajoutez un style CSS spécial
3) Calculez le nombre de jours dans le mois suivant, divisé en trois situations , dimanche, samedi et jour ouvrable
<?php function caculate($calendar) { //$calendar 通過threshold方法計算后的數(shù)據(jù) $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 < $firstDayOfWeek; $i++) { array_push($lastDays, $current);//添加上一個月的日期天數(shù) $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 <= $days; $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 <= $length; $i++) { array_push($dates, array('day' => $i, 'tdclass' => ($i==$length ?'rest':''), 'pclass' => 'outter')); } return $dates; } ?>
Remarque : La fonction
array_push() ajoute un ou plusieurs éléments à la fin du tableau du premier paramètre et renvoie la longueur du nouveau tableau .
La fonction array_reverse() renvoie un tableau dans l'ordre inverse.