Php 计算两个日期之间没有公共假日的工作日

Php 计算两个日期之间没有公共假日的工作日,php,Php,我有以下代码计算工作日的总金额:(工作) 我现在错过的是取消所有公共假日的功能。有什么建议吗?最好的方法是什么?您可以使用 //Subtract the holidays foreach($holidays as $holiday){ $time_stamp=strtotime($holiday); //If the holiday doesn't fall in weekend if ($startDate <= $time_stamp &&

我有以下代码计算工作日的总金额:(工作)


我现在错过的是取消所有公共假日的功能。有什么建议吗?最好的方法是什么?

您可以使用

//Subtract the holidays
foreach($holidays as $holiday){
    $time_stamp=strtotime($holiday);
    //If the holiday doesn't fall in weekend
    if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 && date("N",$time_stamp) != 7)
        $working_days--;
}
//减去假期
foreach($假日作为$假日){
$time_stamp=strottime($假日);
//如果假日不是在周末

如果($startDate)PHP不知道或不关心公共假日是什么时候(因为不同国家的情况不同)因此,您需要告诉PHP哪些日期可以手动忽略。据我所知,获取公共假日并不依赖于任何编程语言,因为您可以获取复活节日期来获取所有其他公共假日。我缺少的是执行该操作的技能。l.获取复活节日期?您知道复活节在不同的国家可能在不同的日期,r是吗?有些国家只是偶尔会有额外的公共假期?我们在2012年有一个额外的公共假期。下个月苏格兰将在4号有夏季银行假期,英格兰将在25号有。你可能需要仔细考虑这一点,这取决于你为谁编写此代码。与不同国家无关:请解释一下……我知道其他的节日取决于当地的国家,但复活节星期天本身?从来没有听说过that@xcy7e例如,在希腊,复活节的日期可能与通过该函数计算的日期不同,因为他们使用的是希腊东正教日历。当然,也有一些国家没有复活节复活节的公众假期。每个国家都有自己的公共假日,不与其他国家共享。假日,坦白地说,非常复杂,如果你有一个国际观众,你就不能简单地计算。但是这不会考虑日期范围吗?例如,如果假期在指定日期之外。ge和it不是在周末,它仍然会减少工作日的结果,对吗?不会,请仔细查看答案。它具有将假日日期与
$startDate
&
$endDate
进行比较的条件。上面只计算了工作日。我知道在包含“假日”的情况下需要一个解决方案
//Subtract the holidays
foreach($holidays as $holiday){
    $time_stamp=strtotime($holiday);
    //If the holiday doesn't fall in weekend
    if ($startDate <= $time_stamp && $time_stamp <= $endDate && date("N",$time_stamp) != 6 && date("N",$time_stamp) != 7)
        $working_days--;
}