rflex/period

此包最新版本(0.6.5)没有可用的许可信息。

用于轻松比较期间的定制库。这是 Carbon\Period 的扩展。

0.6.5 2023-08-06 01:12 UTC

This package is auto-updated.

Last update: 2024-09-06 03:18:39 UTC


README

Period 是一个库,它扩展了 CarbonPeriod 以提供新的定制方法。

您可以在 这里 找到 CarbonPeriod 的文档。

安装 & 使用

composer require rflex/period

导入类

use Rflex\Period;
use Rflex\Event; // Extension of the Carbon class.

测试

PHPUnit

./vendor/phpunit/phpunit/phpunit

PHPStan

./vendor/bin/phpstan analyse

可用方法

addDay() 和 addDays($days): void

向期间添加一天或数天。

$period->addDay(true, false); // Add a day to the start of the period.
$period->addDays(5, true, false); // Add five days to the start of the period.

subDay() 和 subDays($days): void

从期间减去一天或数天。

$period->subDay(false, true); // Subtract a day to the end of the period.
$period->subDays(3, false, true); // Subtract three days to the end of the period.

getSeconds(): int

返回期间的秒数总和。

$period->getSeconds();

getMinutes(): int

返回期间的分钟数总和。

$period->getMinutes();

getHours(): int

返回期间的小时数总和。

$period->getHours();

union($period, $intersects): Period

返回一个新的 Period,它是两个 Period 的总和。默认情况下,它将求和两个不交叉的期间。如果 $intersects 设置为 true,则可以指定只需求和两个相互交叉的期间。

$period = Period::between(Carbon::now(), Carbon::now()->addDay());
$period2 = Period::between(carbon::now(), Carbon::now()->addDays(2));
$unifiedPeriod = $period->union($period2); // Returns a new unified Period.

intersection($period): Period

获取两个其他期间之间的共享期间。

$period = Period::between(Carbon::now(), Carbon::now()->addDay());
$period2 = Period::between(carbon::now(), Carbon::now()->addDays(2));
$intersection = $period->intersection($period2); // Returns a new intersected Period.

intersects($period): bool

检查一个期间是否与另一个期间交叉。

$period = Period::between(Carbon::now(), Carbon::now()->addDay());
$period2 = Period::between(carbon::now(), Carbon::now()->addDays(2));
$period->intersects($period2); // Returns true.

difference($period): array|null

返回两个 Period 之间的差异。如果原始 Period 被切割成不同的部分,此函数可以返回多个 Period。《[totalLengthInSeconds, 'periods' => []]》

$period = Period::between(Carbon::now(), Carbon::now()->addDay());
$period2 = Period::between(carbon::now(), Carbon::now()->addDays(2));
$unifiedPeriod = $period->difference($period2); // Returns an array.

differenceWithEvent($event, $point): int

返回 Period 和 Event 之间的秒数差异。比较是 Event 和 Period 的一个点之间的比较。0 = start,1 = end。

$period = Period::between(Carbon::now(), Carbon::now()->addDay());
$event = Event::create(carbon::now());
$seconds = $period->differenceWithEvent($event); // Returns the difference between the two in seconds.

setLengthInSeconds($seconds): void

从开始设置期间的秒长。

$period->setLengthInSeconds(3600);

setLengthInMinutes($minutes): void

从开始设置期间的分钟长。

$period->setLengthInMinutes(700);

setLengthInHours($hours): void

从开始设置期间的小时长。

$period->setLengthInHours(48);