bretterer/iso_duration_converter

轻松将 ISO_8601 持续时间时间格式转换为秒,并将秒转换为 ISO-8601 持续时间

v0.1.0 2016-02-11 16:37 UTC

This package is auto-updated.

Last update: 2024-09-16 08:59:21 UTC


README

轻松将 ISO 8601 持续时间转换为秒,并将秒转换为 ISO 8601 持续时间

安装

composer require bretterer/iso_duration_converter

使用方法

$converter = new \Bretterer\IsoDurationConverter\DurationParser();
$converter->parse('PT8S'); // Returns 8
$converter->parse('PT5M'); // Returns 300
$converter->parse('PT20H'); // Returns 72000
$converter->parse('PT6M4S'); // Returns 364

$converter->compose(8); // Returns PT8S
$converter->compose(300); // Returns PT5M
$converter->compose(7200); // Returns PT20H
$converter->compose(364); //Returns PT6M4S

$converter->parse('P5W'); // Returns 3024000
// To Returns Weeks, The second argument should be true
$converter->compose(3024000, true); // Returns P5W
$converter->compose(3024000); // Returns P35D

$converter->parse('Hello World'); // Throws 'Invalid Argument Exception' with Message 'Invalid Duration'
$converter->parse('P10Y10M10D'); // Throws 'Invalid Argument Exception' with Message 'Ambiguous Duration'

年和月

如果将年传递给 parse 方法,将抛出 invalid argument exception 异常。

如果您想将秒转换为月,请在 compose 方法中将第二个参数传递为 true

许可证

MIT