Php 从日期范围提取日期

Php 从日期范围提取日期,php,if-statement,foreach,Php,If Statement,Foreach,我的部分回答是动态的: 在本例中,我添加了一个foreach循环来打印所有周一: $start = strtotime('2016-09-05'); $end = strtotime('2016-09-30'); $mondays=array(); $tuesdays=array(); while( $start <= $end ) { if ( date('N',$start)==1 ) $mondays[]=$start; $start += 86400;

我的部分回答是动态的:

在本例中,我添加了一个foreach循环来打印所有周一:

$start = strtotime('2016-09-05');
$end = strtotime('2016-09-30');

$mondays=array(); 
$tuesdays=array();  

while( $start <= $end  ) {

if ( date('N',$start)==1 )   
$mondays[]=$start;
$start += 86400;  

}  
foreach ($mondays as $item) {  
print date("D. Y-m-d", ($item)); 
print ("<br>");
}
$start=strotime('2016-09-05');
$end=strottime('2016-09-30');
$mondays=array();
$tuesdays=array();

而($start与您当前的方法保持一致:

$start = strtotime('2016-09-05');
$end = strtotime('2016-09-30');

while($start <= $end) {
    if(date("D", $start) == "Mon"){
        $mondays[] = $start;
    }
    elseif(date("D", $start) == "Tue"){
        $tuesdays[] = $start;
    }
    $start += 86400;
}

foreach ($mondays as $item){
    echo date("D. Y-m-d", $item);
    echo "<br>";
}

echo "<br>";

foreach ($tuesdays as $item){
    echo date("D. Y-m-d", $item);
    echo "<br>";
}
$start=strotime('2016-09-05');
$end=strottime('2016-09-30');

在这段代码中,$start首先查找DayOfWeek,然后查找范围内的所有dof:
// Data

$StartDate = strtotime('2016-09-06');
$EndDate   = strtotime('2016-09-30');

$DayOfWeek = date("l", $StartDate); // Determine day of week

$LoopDate = $StartDate;

// Find all DayOfWeek's Between Start and End

$Result = [$StartDate];

while (true) {
    $NextDayOfWeek = strtotime("next " . $DayOfWeek, $LoopDate);

    if ($NextDayOfWeek > $EndDate) {
        break;
    }

    $Result[] = $LoopDate = $NextDayOfWeek;
}

// Print Result

/**
 | 2016-09-06
 | 2016-09-13
 | 2016-09-20
 | 2016-09-27
 */
foreach( $Result as $Row ) {
    echo date("Y-m-d", $Row) . '<br/>';
}
//数据
$StartDate=strottime('2016-09-06');
$EndDate=strottime('2016-09-30');
$DayOfWeek=日期(“l”,$StartDate);//确定星期几
$LoopDate=$StartDate;
//查找开始和结束之间的所有工作日
$Result=[$StartDate];
while(true){
$NextDayOfWeek=strtotime(“下一个”$DayOfWeek,$LoopDate);
如果($NextDayOfWeek>$EndDate){
打破
}
$Result[]=$LoopDate=$NextDayOfWeek;
}
//打印结果
/**
| 2016-09-06
| 2016-09-13
| 2016-09-20
| 2016-09-27
*/
foreach($结果为$行){
回音日期(“Y-m-d”,美元行)。“
”; }
嗯…“增加一天?”如果你想循环一周中与一天相同的几天
$start=strotime(“+1周”,“$start”);
@splash58我相信他们想增加一天,而不是一周。这是我从他们的截图中得到的。@Fred ii-我看到了Mon,Mon,Mon…Tue,Tue,Tue…很高兴听到这一点,享受吧