Php 如果没有周末,如何获取日期范围之间的所有日期?

Php 如果没有周末,如何获取日期范围之间的所有日期?,php,laravel,datetime,Php,Laravel,Datetime,我希望所有日期都在日期范围内,但我也希望排除范围内的周末,如星期五和星期六。但我希望周末将是动态的,意味着它可以是任何其他日期 for($date = $fromdate; $date->lte($todate); $date->addDay()) { foreach($allweekends as $weekend) { if($date->for

我希望所有日期都在日期范围内,但我也希望排除范围内的周末,如星期五和星期六。但我希望周末将是动态的,意味着它可以是任何其他日期

for($date = $fromdate; $date->lte($todate); $date->addDay())
             {
                foreach($allweekends as $weekend)
                {
                    if($date->format('l')!=$weekend->weekendDay )
                    {
                        $daterange[]=[

                            'date'=>$date->format('Y-m-d'),
                            'day'=>$date->format('l'),
                        ];
                    }
                }    
            } 

这应该满足您的需要:

<?php

$begin = new DateTime('2018-06-28');
$end = new DateTime('2018-07-02');

for($date = $begin; $date <= $end; $date->modify('+1 day')){
    if (date('N', strtotime($date->format('Y-m-d'))) < 6) {
        $daterange[]=[
            'date'=>$date->format('Y-m-d'),
            'day'=>$date->format('l'),
        ];
    }
}
var_dump($daterange);

?>


它是根据这个答案改编的。

请阅读并相应地编辑您的问题。周末的可能副本将是动态的,它将来自数据库。然后您只需要根据数据库查询设置$begin和$end变量。此外,您还可以将该代码放在一个以$begin和$end作为参数的函数中,并在需要时调用它。