szymat / date-time-interval-advanced
Advanced use of string date intervals
Installs: 1 740
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
This package is auto-updated.
Last update: 2025-03-07 05:43:11 UTC
README
Package for more flexible date interval usage. getDate
works with any DateInterval
implementing class.
Install
composer require szymat/date-time-interval-advanced
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
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