takuya / php-time-overlap
检查时间区间/事件/日历的冲突。
1.1
2022-12-23 08:56 UTC
Requires
- php: >=7.4
Requires (Dev)
- larapack/dd: ^1.1
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-26 11:18:25 UTC
README
此库用于检查事件/日程的时间区间是否有冲突。
检查是否存在冲突。
用法
use Takuya\PhpTimeOverlap\TimeRange; $a = new TimeRange(new DateTime( '22:22' ),new DateTime( '23:22' )); $b = new TimeRange(new DateTime( '22:44' ),new DateTime( '23:44' )); ## check time overlap $a->has_overlapping($b); // => true
其他类似检查。
$a->before($b); $a->overlapped($b); $a->during($b); $a->overlaps($b); $a->after($b); $a->contains($b); $a->same($b);
支持的模式。
我按照这样的方式命名冲突模式。
故意排除等于(例如 A.end==B.start)的模式。如果比较等于 ex.A->end == B->start
,则视为冲突。比较 "22:22-22:25" 到 "22:25-22:27" ,在比较之前显式减去(-1 sec
)。
安装
从github安装
composer config repositories.'php-timerange-overlap' \
vcs https://github.com/takuya/php-timerange-overlap
composer require takuya/php-timerange-overlap:master
composer install
从packgist安装
composer require takuya/php-timerange-overlap
测试
git clone https://github.com/takuya/php-timerange-overlap
cd php-timerange-overlap
composer install
vendor/bin/phpunit