将 ISO 8601 日期、持续时间字符串和间隔字符串解析为 DateTime 对象

v1.0.0 2015-11-11 23:44 UTC

This package is auto-updated.

Last update: 2024-09-05 09:39:18 UTC


README

解析 ISO 8601 日期和间隔。

Build Status Total Downloads

安装

通过 Composer 安装,将以下行添加到 composer.json 中的依赖项中

danharper/dti: "~1.0"

然后运行 composer install/composer update

使用方法

$dti = new danharper\DTI;

传递单个 ISO 8601 日期时间字符串,将提供包含该时间的数组以及当前时间。

list($from, $to) = $dti->parse('2007-03-01T13:00:00Z');

传递单个 ISO 8601 持续时间字符串,将从当前时间减去该持续时间。

list($from, $to) = $dti->parse('PT2H30M');
// from is set to 2h30m before the current time

可选地,向 parse() 提供默认时间,而不是当前时间

$dti->parse('PT2H30M', new DateTime('2001-01-01'));

传递由两个日期时间组成的 ISO 8601 持续时间字符串,将提供这两个日期时间。

$dti->parse('2007-03-01T13:00:00Z/2008-05-11T15:30:00Z');

由日期时间和持续时间组成的持续时间字符串将提供提供的时间,以及加上持续时间的时间。

$dti->parse('2007-03-01T13:00:00Z/P1Y2M10DT2H30M');

反过来,将提供减去持续时间的时间以及原始时间。

$dti->parse('PT2H30M/2007-03-01T13:00:00Z');