在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當(dāng)前位置:雨林木風(fēng)下載站 > 網(wǎng)頁(yè)設(shè)計(jì)教程 > 詳細(xì)頁(yè)面

ThinkPHP中如何取得指定日期后工作日的具體日期 (代碼詳細(xì)說(shuō)明)

ThinkPHP中如何取得指定日期后工作日的具體日期 (代碼詳細(xì)說(shuō)明)

更新時(shí)間:2025-12-04 文章作者:未知 信息來(lái)源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立...
網(wǎng)頁(yè)的本質(zhì)就是超級(jí)文本標(biāo)記語(yǔ)言,通過結(jié)合使用其他的Web技術(shù)(如:腳本語(yǔ)言、公共網(wǎng)關(guān)接口、組件等),可以創(chuàng)造出功能強(qiáng)大的網(wǎng)頁(yè)。因而,超級(jí)文本標(biāo)記語(yǔ)言是萬(wàn)維網(wǎng)(Web)編程的基礎(chǔ),也就是說(shuō)萬(wàn)維網(wǎng)是建立在超文本基礎(chǔ)之上的。超級(jí)文本標(biāo)記語(yǔ)言之所以稱為超文本標(biāo)記語(yǔ)言,是因?yàn)槲谋局邪怂^“超級(jí)鏈接”點(diǎn)。
本篇文章給大家?guī)?lái)的內(nèi)容是關(guān)于ThinkPHP中如何獲取指定日期后工作日的具體日期 (代碼詳解),有一定的參考價(jià)值,有需要的朋友可以參考一下,希望對(duì)你有所幫助。

思路:

1、獲取到查詢年份內(nèi)所有工作日數(shù)據(jù)數(shù)組
2、獲取到查詢開始日期在工作日的索引
3、計(jì)算需查詢?nèi)掌谒饕?br>4、獲得查詢?nèi)掌?br>

/*創(chuàng)建日期類型記錄表格*/
CREATE TABLE `tb_workday` (
`did` int(11) NOT NULL AUTO_INCREMENT,
`exact_date` varchar(32) NOT NULL COMMENT '具體日期:格式date("Ymd");(20170205)',
`date_year` varchar(32) NOT NULL COMMENT '具體日期:格式date("Y");(2017)',
`date_type` tinyint(2) NOT NULL COMMENT '日期類型:0、工作日;1、特殊工作日;2、法定節(jié)假日',
PRIMARY KEY (`did`)
) ENGINE=InnoDB AUTO_INCREMENT=829 DEFAULT CHARSET=utf8 COMMENT='各年工作日&法定節(jié)假日數(shù)據(jù)'
<?php

class work_days
{
  /**
   * 獲取星期
   * @param $date
   * @return mixed
   */
  function get_week($date)
  {
    //強(qiáng)制轉(zhuǎn)換日期格式
    $date_str = date('Y-m-d', strtotime($date));
    //封裝成數(shù)組
    $arr = explode("-", $date_str);
    //參數(shù)賦值
    //年
    $year = $arr[0];
    //月,輸出2位整型,不夠2位右對(duì)齊
    $month = sprintf('%02d', $arr[1]);
    //日,輸出2位整型,不夠2位右對(duì)齊
    $day = sprintf('%02d', $arr[2]);
    //時(shí)分秒默認(rèn)賦值為0;
    $hour = $minute = $second = 0;
    //轉(zhuǎn)換成時(shí)間戳
    $strap = mktime($hour, $minute, $second, $month, $day, $year);
    //獲取數(shù)字型星期幾
    $number_wk = date("w", $strap);

    //獲取數(shù)字對(duì)應(yīng)的星期
    return $number_wk;

    //自定義星期數(shù)組
    //$weekArr = array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");

    //獲取數(shù)字對(duì)應(yīng)的星期
    //return $weekArr[$number_wk];
  }


  /**
   * 獲取指定日期段內(nèi)每一天的日期
   * @param  string $startdate 開始日期
   * @param  string $enddate   結(jié)束日期
   * @return array
   */
  function getDateFromRange($startdate, $enddate)
  {
    $stimestamp = strtotime($startdate);
    $etimestamp = strtotime($enddate);

    // 計(jì)算日期段內(nèi)有多少天
    $days = ($etimestamp - $stimestamp) / 86400 + 1;

    // 保存每天日期
    $_list_date = array();
    for ($i = 0; $i < $days; $i++) {
      $_list_date[] = date('Y-m-d', $stimestamp + (86400 * $i));
    }
    return $_list_date;
  }

  function curl_post($url, $data = null)
  {
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);
    if (!empty($data)) {
      curl_setopt($curl, CURLOPT_POST, 1);
      curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    }
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($curl);
    curl_close($curl);
    return $output;
  }

  /**
   * 更新數(shù)據(jù)庫(kù)指定年份日期數(shù)據(jù)
   * @param $year
   * @return int
   */
  function updateDate($year)
  {
    $startDate = date('Y-m-d', strtotime($year . '-01-01'));
    $endDate = date('Y-m-d', strtotime('+1 year', strtotime($startDate)) - 86400);
    $_list_date = self::getDateFromRange($startDate, $endDate);

    $url = 'http://api.goseek.cn/Tools/holiday';//自行查找的免費(fèi)API

    $m = M('tb_workday');
    $count = 0;

    foreach ($_list_date as $k => $_date) {
      $_ret = 0;
      $_date = date('Ymd', strtotime($_date));
      $_post_data = array('date' => $_date);
      $_ret_curl = curl_post($url, $_post_data);
      $_ret_curl = json_decode($_ret_curl, true);

      //工作日
      if ($_ret_curl['data'] == 0) {
        $dateData['exact_date'] = $_date;
        $dateData['date_year'] = $year;
        $dateData['date_type'] = 0;
        $_ret = $m->add($dateData) ? 1 : 0;
        unset($dateData);


        //工作日 判斷是否為周末
        if (in_array(self::get_week($_date), array(0, 1))) {
          //特殊工作日
          $dateData['exact_date'] = $_date;
          $dateData['date_year'] = $year;
          $dateData['date_type'] = 1;
          $_ret = $m->add($dateData) ? 1 : 0;
          unset($dateData);
        }
      }

      //法定節(jié)假日
      if ($_ret_curl['data'] == 2) {
        $dateData['exact_date'] = $_date;
        $dateData['date_year'] = $year;
        $dateData['date_type'] = 2;
        $_ret = $m->add($dateData) ? 1 : 0;
        unset($dateData);
      }

      //休息日(周末) 暫不處理
      /*if ($_ret_curl['data'] == 1) {

      }*/
      $_ret && $count++;
      unset($_date, $_post_data, $_ret_curl, $_ret);
    }
    return $count;
  }

  /**
   * 獲取當(dāng)年所有工作日 (從數(shù)據(jù)庫(kù)獲取,數(shù)據(jù)庫(kù)無(wú)數(shù)據(jù)則先更新數(shù)據(jù))
   * @param string $year 當(dāng)年年份
   * @return array
   */
  private function getWorkDays($year)
  {
    $m = M('tb_workday');
    $map['date_year'] = $year;
    $map['date_type'] = 0;
    $DateArray = $m->field('exact_date')->where($map)->select();
    if (!empty($DateArray)) {
      $DateArray = array_column($DateArray, 'exact_date');
      return $DateArray;
    } else {
      //更新數(shù)據(jù)庫(kù)工作日數(shù)據(jù)
      $ret = self::updateDate($year);
      if ($ret > 0) {
        return self::getWorkDays($year);
      } else {
        return false;
      }
    }
  }

  /**
   * 獲取開始日期后第N個(gè)工作日具體日期
   * @param $startdate string 計(jì)算開始日期  需包含年月日信息
   * @param $days      int 間隔天數(shù)
   * @return mixed 成功返回 對(duì)應(yīng)日期,失敗返回false
   */
  public function getNextWorkDate($startdate, $days)
  {
    $year = date('Y', strtotime($startdate));
    $startdate = date('Y-m-d', strtotime($startdate));

    $workDays = $this->getWorkDays($year);

    $search_key = array_search(date('Ymd', strtotime($startdate)), $workDays);

    if ($search_key === false) {//查詢?nèi)掌跒榉枪ぷ?      //獲取查詢?nèi)掌谇白罱ぷ魅?      $m = M('tb_workday');
      $map['date_year'] = $year;
      $map['date_type'] = 0;
      $map['DATE_FORMAT(`exact_date`,\'%Y-%m-%d\')'] = array('LT', $startdate);
      $_search_date = $m->where($map)->order('`exact_date` DESC')->getField('exact_date');
      $search_key = array_search($_search_date, $workDays);
      unset($m, $map, $_search_date);
    }

    $t_key = $search_key + $days;

    if ($t_key <= count($workDays) - 1) {
      return date('Y-m-d', strtotime($workDays[$t_key]));
    } else {
      //查詢?nèi)掌谝芽缒?      $n_days = $days - (count($workDays) - 1 - $search_key);
      $next_year = $year + 1;
      return $this->getNextWorkDate($next_year . '-01-01', $n_days - 1);
    }
  }
}


$startdate = '2018-09-28';
$days = 5;

$class = new work_days();
$_date_workday = $class->getNextWorkDate($startdate, $days);
echo $_date_workday;//2018-10-10

以上就是ThinkPHP中如何獲取指定日期后工作日的具體日期 (代碼詳解)的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!


網(wǎng)站建設(shè)是一個(gè)廣義的術(shù)語(yǔ),涵蓋了許多不同的技能和學(xué)科中所使用的生產(chǎn)和維護(hù)的網(wǎng)站。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 激情综合网婷婷| 免费av网址在线| 亚洲中文字幕久久精品无码喷水| 99re99热| 少妇高潮流白浆| 四虎影院一区二区| 欧美日韩理论片| 91香蕉视频免费看| 国产一区二区在线观看免费视频| 91香蕉视频导航| 手机看片一级片| 亚洲精品国产久| 7777在线视频| 人妻少妇精品久久| 黄页网站大全在线观看| 免费成人午夜视频| 日本三级免费观看| 日韩一级免费在线观看| 日韩精品一区二区三区色欲av| 91成人在线观看喷潮教学| 国产亚洲综合视频| wwwwxxxx日韩| 青草全福视在线| 婷婷无套内射影院| 能在线观看的av网站| 国产3p在线播放| 国产在线xxxx| 成人小视频在线看| 女同激情久久av久久| 天堂av免费看| 国内自拍在线观看| 久热精品在线观看视频| 日本黄xxxxxxxxx100| 草草久久久无码国产专区| 国产精品一区二区小说| 91精品国产吴梦梦| 热久久精品免费视频| 两性午夜免费视频| 国产成人无码一二三区视频| 亚洲第一精品区| 黄色三级视频在线| 日本欧美视频在线观看| 国产成年人视频网站| 国产美女主播在线播放 | 五月天婷婷在线观看视频| 日韩日韩日韩日韩日韩| 成年网站在线播放| 男女超爽视频免费播放| 免费不卡av网站| 色婷婷成人在线| 极品美女扒开粉嫩小泬| 超碰在线免费观看97| 少妇性l交大片| 欧美一级免费播放| 在线观看17c| 婷婷中文字幕在线观看| 国产福利影院在线观看| 国产一区二区三区精彩视频| 青青青在线观看视频| 亚洲最新免费视频| 亚洲男人天堂2021| 日本在线播放一区二区| 日本www.色| av动漫在线观看| 日本免费一级视频| 色综合久久久久无码专区| 天天做天天躁天天躁| 女人床在线观看| 超碰10000| 91免费黄视频| 怡红院av亚洲一区二区三区h| 免费高清一区二区三区| 亚洲视频一二三四| 成年人在线观看视频免费| 手机精品视频在线| 岛国av免费在线| 尤物网站在线看| 蜜臀av.com| 日韩专区第三页| 日韩国产小视频| 男人天堂网站在线| 异国色恋浪漫潭| 一本—道久久a久久精品蜜桃| www.色就是色.com| 青草视频在线观看视频| 国产肥臀一区二区福利视频| 国产中文字幕乱人伦在线观看| 午夜久久久久久久久久久| 国产一级片中文字幕| 久久艹这里只有精品| 99re6在线观看| 成年人黄色在线观看| 亚洲第一成肉网| 亚洲第一天堂久久| 麻豆传媒网站在线观看| www.夜夜爱| 欧美牲交a欧美牲交aⅴ免费下载| 三上悠亚久久精品| 欧美三级午夜理伦三级| 男人操女人逼免费视频| 免费午夜视频在线观看| 手机免费av片| 在线播放 亚洲| 国产高清av在线播放| 免费看日本毛片| 男女视频在线看| 日韩人妻一区二区三区蜜桃视频| 精品久久久久久无码中文野结衣| 无罩大乳的熟妇正在播放| 男女啪啪网站视频| 一区二区三区免费播放| 日本一级黄视频| 日日碰狠狠躁久久躁婷婷| 亚欧激情乱码久久久久久久久| www.-级毛片线天内射视视| 丁香花在线影院观看在线播放| 欧美精品第三页| 永久免费网站视频在线观看| 欧美 国产 综合| 久久免费一级片| 国产5g成人5g天天爽| 日韩精品视频久久| 色婷婷777777仙踪林| 亚洲天堂av线| 国自产拍偷拍精品啪啪一区二区| 簧片在线免费看| 天堂а√在线中文在线 | 国产又黄又爽免费视频| 日av中文字幕| 国产伦精品一区二区三区四区视频_| 亚洲成人福利在线观看| 国产中文字幕二区| 少妇熟女一区二区| 成年人免费在线播放| 国产午夜伦鲁鲁| 欧美午夜小视频| 青青草影院在线观看| 伊人国产在线视频| 国产裸体免费无遮挡| 九九九九免费视频| www.国产二区| 久色视频在线播放| 欧美一级片免费播放| 亚洲精品少妇一区二区| 婷婷激情小说网| 一级一片免费播放| 三级黄色片免费观看| 看欧美ab黄色大片视频免费| 337p粉嫩大胆噜噜噜鲁| 黄色成人在线看| 日本中文字幕网址| 色综合久久久久无码专区| 日本手机在线视频| 亚洲小视频网站| 性高湖久久久久久久久aaaaa| 超碰人人爱人人| 女人被男人躁得好爽免费视频| 久久观看最新视频| 六月婷婷在线视频| 黑鬼大战白妞高潮喷白浆| 91大学生片黄在线观看| 怡红院av亚洲一区二区三区h| 黄色a级片免费| 手机在线成人免费视频| 午夜福利123| 九九热只有这里有精品| 欧美日韩亚洲第一| 99爱视频在线| xxww在线观看| 日本丰满大乳奶| 国产一级做a爰片久久毛片男| 99精品在线免费视频| 国模杨依粉嫩蝴蝶150p| wwwwww.色| 免费看毛片的网址| 国产性生交xxxxx免费| 日本福利视频导航| 欧美色图另类小说| www.51色.com| 日韩视频在线免费播放| 国产裸体免费无遮挡| 亚洲第一精品区| 亚欧无线一线二线三线区别| 日本中文字幕影院| 无码人妻精品一区二区蜜桃网站| 国产精品wwwww| 久久久久久综合网| 8x8x最新地址| 国产婷婷一区二区三区| 97人人爽人人| 日本精品www| 日韩xxxx视频| 日本一二区免费| 免费无码不卡视频在线观看| 日韩av影视大全| 欧美自拍小视频| 春日野结衣av| 日韩精品视频网址| 精品日韩在线播放| 亚洲男人天堂2021|