我有这段代码来检查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
)
任何人都可以帮助我。
感谢。
答案 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);