Number of intersections between 2 date ranges Number of intersections between 2 date ranges codeigniter codeigniter

Number of intersections between 2 date ranges


Write it easy:

$datetimeStart1 = new DateTime('2015-12-10');$datetimeEnd1 = new DateTime('2015-12-20');$datetimeStart2 = new DateTime('2015-12-12');$datetimeEnd2 = new DateTime('2015-12-28');$start = max($datetimeStart2,$datetimeStart1);$end = min($datetimeEnd1,$datetimeEnd2);echo $end >= $start ? $end->diff($start)->days+1 : "no overlap";


Something like this should work

$datetimeStart1 = new DateTime('2015-12-10');$datetimeEnd1 = new DateTime('2015-12-20');$datetimeStart2 = new DateTime('2015-12-12');$datetimeEnd2 = new DateTime('2015-12-28');// following http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlapif ($datetimeStart1 < $datetimeEnd2 && $datetimeEnd1 > $datetimeStart2) {    echo min($datetimeEnd1,$datetimeEnd2)->diff(max($datetimeStart2,$datetimeStart1))->days+1;} else {    echo 'no overlap';}

Demo: http://3v4l.org/9Pecb

Only for PHP 5.2

$datetimeStart1 = new DateTime('2015-12-10');$datetimeStart1 = $datetimeStart1->format('U');$datetimeEnd1 = new DateTime('2015-12-20');$datetimeEnd1 = $datetimeEnd1->format('U');$datetimeStart2 = new DateTime('2015-12-12');$datetimeStart2 = $datetimeStart2->format('U');$datetimeEnd2 = new DateTime('2015-12-28');$datetimeEnd2 = $datetimeEnd2->format('U');// following http://stackoverflow.com/questions/325933/determine-whether-two-date-ranges-overlapif ($datetimeStart1 < $datetimeEnd2 && $datetimeEnd1 > $datetimeStart2) {    echo round(        ((min($datetimeEnd1,$datetimeEnd2)) - (max($datetimeStart2,$datetimeStart1))) / (60*60*24)) + 1;} else {    echo 'no overlap';}

Demo: http://3v4l.org/a1WLk