time = time(); } /** * 获取当前年度的节假日 */ private function getHolidays() { $data = Db::name('holiday')->where('year', '=', date('Y'))->column('data'); if (empty($data)) { $this->holidays = []; } $this->holidays = $data; } /** * 获取工作日 */ public function getDates($adays) { // 获取节假日 $this->getHolidays(); // 组装工作日 $ctime = $this->time; $days = []; $i = 1; while($adays>0) { $day = strtotime("+ $i day", $ctime); $week = date('w', $day); // 剔除周六周日与假日 if (0 != $week && 6 != $week && !in_array(date('Y-m-d', $day), $this->holidays)) { $adays-=1; $days[] = date('Y-m-d H:i:s', $day); } $i+=1; } return $days; } /** * 获取几个工作日后日期 */ public function getDate($adays, $ctime = 0) { if (!empty($ctime)) { $this->time = $ctime; } $days = $this->getDates($adays); rsort($days); return $days[0]; } }