takuya/php-time-overlap

检查时间区间/事件/日历的冲突。

1.1 2022-12-23 08:56 UTC

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