smhg/date-timespan

PHP类集合,用于处理时间段。

v5.0.0 2023-06-30 07:34 UTC

This package is auto-updated.

Last update: 2024-09-16 16:18:56 UTC


README

PHP类集合,用于处理时间段。

它与 DatePeriod 不同,因为它仅通过开始和结束日期定义时间段/周期。它提供 代数 方法来操作时间段或它们的集合。当您需要遍历它时,通过传递 DateInterval 到 toPeriod() 将它转换为 DatePeriod。

安装

$ composer require smhg/date-timespan

方法

时间段

use Timespan\Timespan;

$start = new DateTime('last monday');
$end = clone $start;
$end->modify('+1 week');

$timespan = new Timespan($start, $end);

contains(DateTime)

返回时间段是否包含一个日期。

overlaps(Timespan)

返回时间段是否与另一个时间段重叠。

diff(Timespan)

返回一个包含时间段(原始时间段的片段)的集合,这些时间段不在另一个时间段中。

merge(Timespan)

返回一个包含合并时间段或两个时间段的集合,当合并不可能时。

trim(DateTime, DateTime)

返回一个新时间段,它适合于传递的边界内,或者在没有任何时间剩余时返回 null

compare(Timespan)

返回时间段是否在另一个时间段之前、同时或之后。

toPeriod(DateInterval)

使用间隔将时间段转换为 DatePeriod

__toString()

将时间段转换为 ISO 8601 时间间隔 格式的字符串。

toArray()

将时间段转换为包含单个 interval 元素的数组,该元素包含 toString 表示。

集合

use Timespan\Timespan;
use Timespan\Collection;

$collection = new Collection();
$collection[] = new Timespan(...);

sort()

根据每个时间段的开始对集合进行排序。

compress()

如果集合中的时间段重叠,则将它们连接起来。同时也会对结果进行排序。

merge()

将集合与另一个集合合并。同时压缩结果。