<?php
$arr = ["01/06/18", "02/06/18", "03/06/18",
"11/06/18","12/06/18", "13/06/18", "14/06/18", "15/06/18","16/06/18",
"20/06/18"];
$i =-1;
$prev =0;
$format = "d/m/y";
Foreach($arr as $val){
$dt = date_create_from_format ($format , $val);
$unix = date_timestamp_get($dt);
If($unix -$prev > 86400){
$i++;
If($i>0){
If(count($res[$i-1]) >1){
$periods[] = date($format, min($res[$i-1])) . " - " . date($format, max($res[$i-1]));
}Else{
$periods[] = date($format, min($res[$i-1]));
}
}
}
$res[$i][] = $unix;
$prev = $unix;
}
If(count(end($res)) >1){
$periods[] = date($format, min(end($res))) . " - " . date($format, max(end($res)));
}Else{
$periods[] = date($format, min(end($res)));
}
Var_dump($periods);
- Output for 7.1.0 - 7.1.20, 7.2.0 - 7.2.33, 7.3.16 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- array(3) {
[0]=>
string(19) "01/06/18 - 03/06/18"
[1]=>
string(19) "11/06/18 - 16/06/18"
[2]=>
string(8) "20/06/18"
}
preferences:
119.44 ms | 408 KiB | 5 Q