rflex / period
此包最新版本(0.6.5)没有可用的许可信息。
用于轻松比较期间的定制库。这是 Carbon\Period 的扩展。
0.6.5
2023-08-06 01:12 UTC
Requires
- nesbot/carbon: ^2.54
Requires (Dev)
- phpstan/phpstan: ^1.10
- phpunit/phpunit: ^10.1
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);