smhg / date-timespan
PHP类集合,用于处理时间段。
v5.0.0
2023-06-30 07:34 UTC
Requires
- php: >=8.1
Requires (Dev)
- phpmd/phpmd: ^2.8
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^9.6
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()
将集合与另一个集合合并。同时压缩结果。