phrity/datetime

日期时间工具。

1.0.0 2023-09-15 15:44 UTC

This package is auto-updated.

Last update: 2024-08-30 11:18:28 UTC


README

Build Status Coverage Status

简介

日期时间工具。

安装

使用 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

版本