php判断指定日期是否工作日

2018-12-8 晦涩sunshine PHP学习笔记

<?php

namespace Isworkday;

/**
 * 指定日期是否为工作日
 *
 * Class Api
 */
class Api {

    /**
     * 获取日期类型
     *
     * @param $date 指定年月日 Y-m-d格式
     * @return string|\day_type 返回类型 workday=工作日,workend=周末,holiday=节假日
     */
    public function getDateType($date = '')
    {
        empty($date) && $date = date('Y-m-d');

		$url = "https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query=".date('Y年m月d日',strtotime($date))."&resource_id=6018&format=json&_=1544251006975";

		$res = mb_convert_encoding(curl($url), 'UTF-8', 'GBK');
        $res = json_decode($res,true);
		$res['status'] == '0' && $days = $res['data'][0];

		$day_type = '';
		// 如果当月存有节假日,我们优先判断是否节假日
		if(!empty($days['holiday'])){
			foreach($days['holiday'] as $k => $v){
				$holidays_list = is_array($v) ? $holidays_list = $v['list'] : $days['holiday']['list'];
				foreach($holidays_list as $holiday){
					if(date('Y-n-j', strtotime($date)) == $holiday['date']){

						// 节假日中 status == 1,表示 '节假日'
						if($holiday['status'] == 1){
							$day_type = 'holiday';

						// 节假日中 status == 2,表示 '工作日'
						}elseif($holiday['status'] == 2){
							$day_type = 'weekday';
						}
					}
				}
				if(!is_array($v)){
					break;
				}
			}

			// 未匹配到节假日,正常的周六、日休息
			if(empty($day_type)){
				$day_week = date('w', strtotime($date));
				if($day_week == 0 || $day_week == 6){
					$day_type = 'weekend';
				}else{
					$day_type = 'weekday';
				}
			}

            //返回
            return $day_type;
		}
    }


    /*
        CURL 获取数据
        @author	cjm 20160608
        @param	string	url     请求地址
        @param	array	data    请求数据
        @param	string	type    请求类型
        @return	string
    */
    function curl($url, $type = 'get', $data = array())
    {
        //初始化
        $curl = curl_init();
        //设置抓取的url
        curl_setopt($curl, CURLOPT_URL, $url);
        //设置获取的信息以文件流的形式返回,而不是直接输出。
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

        //post方式
        if($type == 'post'){
            //设置post方式提交
            curl_setopt($curl, CURLOPT_POST, 1);
            curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
        }

        //执行命令
        $result = curl_exec($curl);
        //关闭URL请求
        curl_close($curl);

        //返回
        return $result;

    }
}

标签: php

发表评论:

Powered by emlog sitemap