国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP開發(fā)之製作簡(jiǎn)單日曆計(jì)算日曆的天數(shù)與樣式

113.png

自訂函數(shù)caculate方法,計(jì)算日曆的天數(shù)與樣式。

1)將上個(gè)月的天數(shù)計(jì)算出來,本月第一天的星期不是星期天的話,就需要根據(jù)上個(gè)月的最後一天計(jì)算

2)將本月的天數(shù)遍歷出來,如果是休息天就加上特殊的css樣式

3)將下個(gè)月的天數(shù)計(jì)算出來,分三種情況,星期日、星期六和工作日

<?php
function caculate($calendar) {   //$calendar 通過threshold方法計(jì)算后的數(shù)據(jù)
    $days = $calendar['days'];
    $firstDayOfWeek = $calendar['firstDayOfWeek'];//本月第一天的星期
    $lastDayOfWeek = $calendar['lastDayOfWeek'];//本月最后一天的星期
    $lastMonthOfLastDay = $calendar['lastMonthOfLastDay'];//上個(gè)月的最后一天
    $year = $calendar['year'];
    $month = $calendar['month'];
    $dates = array();
    
   if($firstDayOfWeek != 7) {
      $lastDays = array();
      $current = $lastMonthOfLastDay;//上個(gè)月的最后一天
      for ($i = 0; $i < $firstDayOfWeek; $i++) {
         array_push($lastDays, $current);//添加上一個(gè)月的日期天數(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;
}
?>

註:

array_push() 函數(shù)在第一個(gè)參數(shù)的陣列尾部新增一個(gè)或多個(gè)元素,然後傳回新陣列的長(zhǎng)度。

array_reverse() 函數(shù)傳回翻轉(zhuǎn)順序的陣列。

繼續(xù)學(xué)習(xí)
||
<?php function caculate($calendar) { //$calendar 通過threshold方法計(jì)算后的數(shù)據(jù) $days = $calendar['days']; $firstDayOfWeek = $calendar['firstDayOfWeek'];//本月第一天的星期 $lastDayOfWeek = $calendar['lastDayOfWeek'];//本月最后一天的星期 $lastMonthOfLastDay = $calendar['lastMonthOfLastDay'];//上個(gè)月的最后一天 $year = $calendar['year']; $month = $calendar['month']; $dates = array(); if($firstDayOfWeek != 7) { $lastDays = array(); $current = $lastMonthOfLastDay;//上個(gè)月的最后一天 for ($i = 0; $i < $firstDayOfWeek; $i++) { array_push($lastDays, $current);//添加上一個(gè)月的日期天數(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; } ?>
提交重置程式碼