phrity / datetime
日期时间工具。
1.0.0
2023-09-15 15:44 UTC
Requires
- php: ^7.4 | ^8.0
Requires (Dev)
- php-coveralls/php-coveralls: ^2.0
- phpunit/phpunit: ^9.0 | ^10.0
- squizlabs/php_codesniffer: ^3.0
This package is auto-updated.
Last update: 2024-08-30 11:18:28 UTC
README
简介
日期时间工具。
安装
使用 Composer 安装;
composer require phrity/datetime
用法
通过两个 DateTime 实例或一个 DateTime 和一个 DateInterval 创建时间范围,用于相对结束日期。
use Phrity\DateTime\Range; $start = new DateTime("2023-05-17 13:23"); $end = new DateTime("2023-06-20 23:23"); $now = new DateTime(); $interval = new DateInterval("P15D"); $timezone = new DateTimeZone("+02:00"); $range_1 = new Range($start, $end); echo "$range_1"; // "2023-05-17T13:23:00+00:00 - 2023-06-20T23:23:00+00:00" $range_2 = new Range($start, $interval); echo "$range_2"; // "2023-05-17T13:23:00+00:00 - 2023-06-01T13:23:00+00:00"
基本操作
$range_1->getTimezone(); // -> DateTimeZone $range_1->setTimezone($timezone); $range_1->getStart(); // -> DateTimeImmutable $range_1->getEnd(); // -> DateTimeImmutable $range_1->format("c"); // Format using the same options as for DateTime
修饰符
$range_1->add($interval); // Adds interval on start/end of range $range_1->sub($interval); // Subtracts interval on start/end of range $range_1->modify("+1 month"); // Modifies start/end of range
检查器
$range_1->inRange($now); // If now is within range $range_1->isBefore($now); // If now is before range $range_1->isAfter($now); // If now is after range $range_1->inRange($range_2); // If range_2 is within range_1 $range_1->isBefore($range_2); // If range_2 starts before range_1 $range_1->isAfter($range_2); // If range_2 ends after range_1
间隔和周期
$range_1->getInterval(); // -> DateInterval, between start and end $range_1->getPeriod($interval); // -> DatePeriod, intervals between start and end