Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取一个月内的工作日日期_Php_Arrays_Date_Days - Fatal编程技术网

Php 获取一个月内的工作日日期

Php 获取一个月内的工作日日期,php,arrays,date,days,Php,Arrays,Date,Days,好的,现在我正在手工做这个 $days= array('2013-06-03','2013-06-04','2013-06-05','2013-06-06','2013-06-07','2013-06-11','2013-06-12','2013-06-13','2013-06-14','2013-06-17','2013-06-18','2013-06-19','2013-06-20','2013-06-21','2013-06-24','2013-06-25','2013-06-26','2

好的,现在我正在手工做这个

$days= array('2013-06-03','2013-06-04','2013-06-05','2013-06-06','2013-06-07','2013-06-11','2013-06-12','2013-06-13','2013-06-14','2013-06-17','2013-06-18','2013-06-19','2013-06-20','2013-06-21','2013-06-24','2013-06-25','2013-06-26','2013-06-27','2013-06-28',);
但是我想将它移动到一种自动方式,用户选择月份,PHP脚本生成工作日日期

如果过去有人看到过这样做,那就太好了

我仍然需要找出不包括公共假日的地方(基于澳大利亚墨尔本公共假日)


但是我想我还是会问这个问题,因为我们的工作日比公共假日多:)

函数
strftime
将时间戳转换为工作日的名称,格式为“%a”。

$day
将在此代码后包含
“星期一”
。现在,您可以使用
mktime
轻松遍历所有日期,然后检查工作日。

$month=10;
$month = 10;

for ($i = 1; $i <= 31; $i++) { 
    $timestamp = mktime(0, 0, 0, $month, $i, 2012);
    if (date("n", $timestamp) == $month) {
        $day = date("N", $timestamp);
        if ($day == 1 OR $day <= 5) {
            $days[$day][] = date("D", $timestamp);
        }
    }
}

对于($i=1;$i在我的手机上,所以不打算写任何代码。但请查看PHPs DateTime对象。它们足够聪明,可以知道一周中的哪一天。因此,您可以循环添加一天,并检查它是否为工作日。然后您可以将其与公共假日API交叉引用。不确定为什么这会被否决,因为这是一个重要的问题不管是对我还是对将来的其他人来说,这都不是问题
$month = 10;

for ($i = 1; $i <= 31; $i++) { 
    $timestamp = mktime(0, 0, 0, $month, $i, 2012);
    if (date("n", $timestamp) == $month) {
        $day = date("N", $timestamp);
        if ($day == 1 OR $day <= 5) {
            $days[$day][] = date("D", $timestamp);
        }
    }
}