为了账号安全,请及时绑定邮箱和手机立即绑定

php 日曆系統中添加foreach迴圈!

php 日曆系統中添加foreach迴圈!

PHP
炎炎设计 2019-03-18 15:24:51
這是一個php完整的日曆系統 class Calendar { public function __construct(){ $this->naviHref = htmlentities($_SERVER['PHP_SELF']); } /********************* PROPERTY ********************/ private $dayLabels = array("一","二","三","四","五","六","日"); private $currentYear=0; private $currentMonth=0; private $currentDay=0; private $currentDate=null; private $daysInMonth=0; private $naviHref= null; /********************* PUBLIC **********************/ public function show() { @$year == null; @$month == null; if(null==@$year&&isset($_GET['year'])){ @$year = $_GET['year']; }else if(null==@$year){ @$year = date("Y",time()); } if(null==@$month&&isset($_GET['month'])){ $month = $_GET['month']; }else if(null==@$month){ $month = date("m",time()); } $this->currentYear=$year; $this->currentMonth=$month; $this->daysInMonth=$this->_daysInMonth($month,$year); $content='<div id="calendar">'. '<div class="box">'. $this->_createNavi(). '</div>'. '<div class="box-content">'. '<ul class="label">'.$this->_createLabels().'</ul>'; $content.='<div class="clear"></div>'; $content.='<ul class="dates">'; $weeksInMonth = $this->_weeksInMonth($month,$year); // Create weeks in a month for( $i=0; $i<$weeksInMonth; $i++ ){ //Create days in a week for($j=1;$j<=7;$j++){ $content.=$this->_showDay($i*7+$j); } } $content.='</ul>'; $content.='<div class="clear"></div>'; $content.='</div>'; $content.='</div>'; return $content; } /********************* PRIVATE **********************/ private function _showDay($cellNumber){ if($this->currentDay==0){ $firstDayOfTheWeek = date('N',strtotime($this->currentYear.'-'.$this->currentMonth.'-01')); if(intval($cellNumber) == intval($firstDayOfTheWeek)){ $this->currentDay=1; } } if(($this->currentDay!=0)&&($this->currentDay<=$this->daysInMonth)){ $this->currentDate = date('Y-m-d',strtotime($this->currentYear.'-'.$this->currentMonth.'-'.($this->currentDay))); $cellContent = $this->currentDay; $this->currentDay++; }else{ $this->currentDate =null; $cellContent=null; } return ' <li id="li-'.$this->currentDate.'" class="'.($this->currentDate==date("Y-m-d")?'today':'').' relative '.($cellNumber%7==1?' start ':($cellNumber%7==0?' end ':' ')). ($cellContent==null?'mask':'').'">'.($cellContent==null?'':' <span class="cellContent">'.$cellContent.'</span> <div class="avatar_review_layout"> <span data-today="'.$cellContent.'" data-date="'.$this->currentDate.'" class="pointer relative addicon add_'.$this->currentDate.'"><span class="plus">+</span></span> </div> ').'</li>'; } private function _createNavi(){ $nextMonth = $this->currentMonth==12?1:intval($this->currentMonth)+1; $nextYear = $this->currentMonth==12?intval($this->currentYear)+1:$this->currentYear; $preMonth = $this->currentMonth==1?12:intval($this->currentMonth)-1; $preYear = $this->currentMonth==1?intval($this->currentYear)-1:$this->currentYear; return '<div class="header">'. '<a class="prev" href="'.$this->naviHref.'?month='.sprintf('%02d',$preMonth).'&year='.$preYear.'">← '.$preMonth.' 月</a>'. '<span class="title">'.date('Y 年 n 月',strtotime($this->currentYear.'-'.$this->currentMonth.'-1')).'</span>'. '<a class="next" href="'.$this->naviHref.'?month='.sprintf("%02d", $nextMonth).'&year='.$nextYear.'">'.$nextMonth.' 月 →</a>'. '</div>'; } private function _createLabels(){ $content=''; foreach($this->dayLabels as $index=>$label){ $content.='<li class="'.($label==6?'end title':'start title').' title">'.$label.'</li>'; } return $content; } private function _weeksInMonth($month=null,$year=null){ if( null==($year) ) { $year = date("Y",time()); } if(null==($month)) { $month = date("m",time()); } // find number of days in this month $daysInMonths = $this->_daysInMonth($month,$year); $numOfweeks = ($daysInMonths%7==0?0:1) + intval($daysInMonths/7); $monthEndingDay= date('N',strtotime($year.'-'.$month.'-'.$daysInMonths)); $monthStartDay = date('N',strtotime($year.'-'.$month.'-01')); if($monthEndingDay<$monthStartDay){ $numOfweeks++; } return $numOfweeks; } private function _daysInMonth($month=null,$year=null){ if(null==($year)) $year = date("Y",time()); if(null==($month)) $month = date("m",time()); return date('t',strtotime($year.'-'.$month.'-01')); } } $calendar = new Calendar(); echo $calendar->show(); 其中有一段return是: return ' <li id="li-'.$this->currentDate.'" class="'.($this->currentDate==date("Y-m-d")?'today':'').' relative '.($cellNumber%7==1?' start ':($cellNumber%7==0?' end ':' ')). ($cellContent==null?'mask':'').'">'.($cellContent==null?'':' <span class="cellContent">'.$cellContent.'</span> <div class="avatar_review_layout"> <span data-today="'.$cellContent.'" data-date="'.$this->currentDate.'" class="pointer relative addicon add_'.$this->currentDate.'"><span class="plus">+</span></span> // 讓迴圈能夠在這裡運作 </div> ').'</li>'; 我想將 foreach($driver_shift_get_all->{'driver-shifts'} as $value): echo "<br>".$value->date."<br>"; print_r($value->{'drivers-available'}); endforeach; 加入到這個return但無法加入.....會有各種問題請問這能怎麼解?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 401 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信