vantage / period-queries
Query by overlapping and intersecting periods in Laravel
v1.0.1
2019-05-01 12:30 UTC
Requires (Dev)
- nesbot/carbon: ^1.36
- orchestra/testbench: ^3.5
This package is not auto-updated.
Last update: 2025-03-28 16:12:39 UTC
README
Adds overlaps
and intersects
macros to your Illuminate\Database\Query\Builder
.
Installation
Just composer require vantage/period-queries
Usage
<?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);
Advanced
Event::whereTitle($title)->orOverlaps($period);
Event::whereTitle($title)->orIntersects($period);
Event::overlaps($period, ['created_at', 'updated_at']);
Contributing
composer install
./vendor/bin/phpunit