Skip to content

Radweb/DTI

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DTI

Parse ISO 8601 dates and intervals.

Build Status Total Downloads

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');