public function testOverlaps() { $dr = new DateRange(new DateTime('2006-07-08'), new DateTime('2006-09-05')); $this->assertTrue($dr->overlaps(new DateRange(new DateTime('2006-07-08'), new DateTime('2006-07-10')))); $this->assertTrue($dr->overlaps(new DateRange(new DateTime('2006-07-09'), new DateTime('2006-09-05')))); $this->assertTrue($dr->overlaps(new DateRange(new DateTime('2006-07-07'), new DateTime('2006-07-08')))); $this->assertTrue($dr->overlaps(new DateRange(new DateTime('2006-07-09'), new DateTime('2006-09-06')))); $this->assertFalse($dr->overlaps(new DateRange(new DateTime('2006-07-06'), new DateTime('2006-07-07')))); }
public static function createOverlappingDateRangeFilter(DateRange $range) { return function ($booking) use($range) { $bookingRange = new DateRange($booking->start, $booking->end); return $range->overlaps($bookingRange); }; }