用PHP检查连续几天

时间:2017-01-09 04:04:13

标签: php date

我有这段代码来检查PHP中的连续日期:

$dates = "2017-02-26, 2017-02-27, 2017-03-01";
$dates = explode(',', $dates);

$conseq = array(); 
$ii = 0;
$max = count($dates);

for($i = 0; $i < count($dates); $i++) {
    $conseq[$ii][] = date('Y-m-d',$dates[$i]);

    if($i + 1 < $max) {
        $dif = $dates[$i + 1] - $dates[$i];
        if($dif >= 90000) {
            $ii++;
        }   
    }
}

print_r($dates);

问题是这段代码不能使工作达到100%。

它应该创建一个连续几天的数组,并为每个单独的日期创建另一个数组,如下所示:

Array (
    [0] => 2017-02-26
    [1] => 2017-02-27
)
Array (
    [0] => 2017-03-01
) 

任何人都可以帮助我。

感谢。

2 个答案:

答案 0 :(得分:1)

请尝试以下答案

{{1}}

答案 1 :(得分:0)

你可以把它放在像这样的foreach循环中,然后按月过滤数组值。

$dates = "2017-02-26, 2017-02-27, 2017-03-01";
$date_arr = explode(',', $dates);
$filter = array();
foreach( $date_arr as $date ){
   $filter[date('m', strtotime($date))][] = $date; 
}
echo '<pre>'; print_r($filter);