danharper / dti
Parse ISO 8601 date, duration and interval strings into DateTime objects
Installs: 45 188
Dependents: 1
Suggesters: 0
Security: 0
Stars: 1
Watchers: 3
Forks: 2
Open Issues: 1
Requires
- php: >=5.3.0
Requires (Dev)
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2024-11-05 10:05:01 UTC
README
Parse ISO 8601 dates and intervals.
Installation
Install via Composer by adding the following line to the dependencies in your composer.json:
danharper/dti: "~1.0"
And run composer install
/composer update
Usage
$dti = new danharper\DTI;
Passing a single ISO 8601 datetime string will provide you with an array containing that time, and the current time.
list($from, $to) = $dti->parse('2007-03-01T13:00:00Z');
Passing a single ISO 8601 duration string will substract that duration from the current time.
list($from, $to) = $dti->parse('PT2H30M'); // from is set to 2h30m before the current time
Optionally, provide parse()
with the default time to use instead of the current time:
$dti->parse('PT2H30M', new DateTime('2001-01-01'));
Passing a ISO 8601 duration string consisting of two datetimes, will give you them:
$dti->parse('2007-03-01T13:00:00Z/2008-05-11T15:30:00Z');
A duration string consisting of a datetime and a duration will give the datetime provided, and the datetime with the duration added to it.
$dti->parse('2007-03-01T13:00:00Z/P1Y2M10DT2H30M');
And in reverse, will give you the datetime with the duration substracted, and the datetime:
$dti->parse('PT2H30M/2007-03-01T13:00:00Z');