Adds overlaps and intersects macros to your Illuminate\Database\Query\Builder.
Just composer require vantage/period-queries
<?php
use Illuminate\Database\Eloquent\Model;
class Event extends Model
{
/**
* The attributes that should be mutated to dates.
*/
protected $dates = ['started_at', 'ended_at'];
/**
* The attributes that are mass assignable.
*/
protected $fillable = ['started_at', 'ended_at'];
}use Carbon\CarbonPeriod;
$period = CarbonPeriod::create('2019-01-01', '2019-01-31');
Event::overlaps($period);$start = new DateTime(2019, 1, 1);
$end = new DateTime(2019, 1, 31);
$period = new DatePeriod($start, 'P1D', $end);
Event::intersects($period);Event::whereTitle($title)->orOverlaps($period);Event::whereTitle($title)->orIntersects($period);Event::overlaps($period, ['created_at', 'updated_at']);composer install./vendor/bin/phpunit
