Description
Compare multiple dates with each other, calculate the overlaps and differences between n-amount of periods, as well as some more basic comparisons between two periods.
This package adds support for comparing multiple dates with each other. You can calculate the overlaps and differences between n-amount of periods, as well as some more basic comparisons between two periods.
Periods can be constructed from any type of DateTime implementation, making this package compatible with custom DateTime implementations like Carbon (see cmixin/enhanced-period to convert directly from and to CarbonPeriod).
Periods are always immutable, there's never the worry about your input dates being changed.
Creating periods
You're encouraged to create periods using their static constructor:
$period = Period::make('2021-01-01', '2021-01-31');
You can manually construct a period, but you'll need to manually provide its precision and boundaries. Using Period::make, the default precision (Precision::DAY()) and default boundaries (Boundaries::EXCLUDE_NONE()) are used.
Before discussing the API provided by this package, it's important to understand both how precision and boundaries are used.