PHPackages                             szymat/date-time-interval-advanced - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. szymat/date-time-interval-advanced

ActiveLibrary

szymat/date-time-interval-advanced
==================================

Advanced use of string date intervals

1.0.1(4y ago)02.1kGPL-3.0-onlyPHP

Since Aug 1Pushed 4y ago1 watchersCompare

[ Source](https://github.com/szymat/date-time-interval-advanced)[ Packagist](https://packagist.org/packages/szymat/date-time-interval-advanced)[ RSS](/packages/szymat-date-time-interval-advanced/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)DependenciesVersions (3)Used By (0)

Advanced DateIntervals
======================

[](#advanced-dateintervals)

Package for more flexible date interval usage. `getDate` works with any `DateInterval` implementing class.

Install
-------

[](#install)

```
composer require szymat/date-time-interval-advanced

```

Format
------

[](#format)

```
-P*|H:i:s

`-` => defines if period will be added or subtracted
`P*` => Standard PHP DateInterval format
'|H:i:s' => (optional) `|` separator with fixed time to set

```

[DateInterval Format](https://www.php.net/manual/en/dateinterval.format.php)

Example
-------

[](#example)

```
// Can be also DateTime object
$date = new DateTimeImmutable('2021-05-12 13:43:10');
$interval = new Interval\Interval('-P1D|23:59:59');
$newDate = $interval->getDate($date); // Will return new object
echo $date->format('Y-m-d H:i:s') . ' => '.$newDate->format('Y-m-d H:i:s') . "\n";
```

Will output

```
2021-05-12 13:43:10 => 2021-05-11 23:59:59

```

---

```
$date = new DateTimeImmutable('2021-05-12 13:43:10');
$interval = new Interval\Interval('P15D|14:00');
$newDate = $interval->getDate($date);
echo $date->format('Y-m-d H:i:s') . ' => '.$newDate->format('Y-m-d H:i:s') . "\n";
```

Will output

```
2021-05-12 13:43:10 => 2021-05-27 14:00:10

```

---

```
$date = new DateTimeImmutable('2021-05-12 13:43:10');
$interval = new Interval\Interval('-P5D');
$newDate = $interval->getDate($date);
echo $date->format('Y-m-d H:i:s') . ' => '.$newDate->format('Y-m-d H:i:s') . "\n";
```

Will output

```
2021-05-12 13:43:10 => 2021-05-07 13:43:10

```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community4

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

2

Last Release

1738d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/726d24d36cd98d1d81f36285919364c747d40e5c2a4ad40da020eea0b0306a48?d=identicon)[szymat](/maintainers/szymat)

### Embed Badge

![Health badge](/badges/szymat-date-time-interval-advanced/health.svg)

```
[![Health](https://phpackages.com/badges/szymat-date-time-interval-advanced/health.svg)](https://phpackages.com/packages/szymat-date-time-interval-advanced)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
