惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

有赞技术团队
有赞技术团队
H
Hackread – Cybersecurity News, Data Breaches, AI and More
I
InfoQ
J
Java Code Geeks
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
D
DataBreaches.Net
Recent Announcements
Recent Announcements
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
Y
Y Combinator Blog
博客园 - 【当耐特】
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
P
Proofpoint News Feed
量子位
C
Check Point Blog
F
Fortinet All Blogs
罗磊的独立博客
Last Week in AI
Last Week in AI
GbyAI
GbyAI
L
LangChain Blog
博客园 - 司徒正美

WangDeer

非机动车交通规则测验 微软 50 周年壁纸是在 macOS上设计的? 「转」西二旗折叠:蜂巢经济学启示录 难得空明 Ubuntu Clean ApidocJs apigroup Support Chinese int(10)里面的10是什么意思? 5-3 会话 2021-03-25 「PHP架构师」面试准备 Laravel 上传 Docx 文件,表单验证不通过 4-4 发送信号 4-3 信号集 4-2 编写中断信号处理程序 2022-03-10 面试复盘 4-1 什么是中断信号(软中断) 3-7 进程查看 3-6 SUID特权进程 3-5多进程编写 3-4进程调度 3-3进程exec 3-2进程退出和回收 3-1进程标识与fork 2-3解释器文件 2-2命令行参数与环境参数表 2-1程序与进程 1-1课程介绍 终极复盘 第八章 传承篇 第七章 自由篇 第六章 品牌篇
PHP判断指定日期是否为工作日
王二 · 2018-12-08 · via WangDeer

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;

    }
}