[VarDumper] Fix interval caster with PT3600S-like spec
This commit is contained in:
parent
978eca9fe4
commit
046f8c101b
@ -52,11 +52,14 @@ class DateCaster
|
|||||||
|
|
||||||
private static function formatInterval(\DateInterval $i)
|
private static function formatInterval(\DateInterval $i)
|
||||||
{
|
{
|
||||||
$format = '%R '
|
$format = '%R ';
|
||||||
.($i->y ? '%yy ' : '')
|
|
||||||
.($i->m ? '%mm ' : '')
|
if ($i->y === 0 && $i->m === 0 && ($i->h >= 24 || $i->i >= 60 || $i->s >= 60)) {
|
||||||
.($i->d ? '%dd ' : '')
|
$i = date_diff($d = new \DateTime(), date_add(clone $d, $i)); // recalculate carry over points
|
||||||
;
|
$format .= 0 < $i->days ? '%ad ' : '';
|
||||||
|
} else {
|
||||||
|
$format .= ($i->y ? '%yy ' : '').($i->m ? '%mm ' : '').($i->d ? '%dd ' : '');
|
||||||
|
}
|
||||||
|
|
||||||
if (\PHP_VERSION_ID >= 70100 && isset($i->f)) {
|
if (\PHP_VERSION_ID >= 70100 && isset($i->f)) {
|
||||||
$format .= $i->h || $i->i || $i->s || $i->f ? '%H:%I:%S.%F' : '';
|
$format .= $i->h || $i->i || $i->s || $i->f ? '%H:%I:%S.%F' : '';
|
||||||
|
@ -173,6 +173,10 @@ EODUMP;
|
|||||||
array('P5M', 0, '+ 5m', null),
|
array('P5M', 0, '+ 5m', null),
|
||||||
array('P6Y', 0, '+ 6y', null),
|
array('P6Y', 0, '+ 6y', null),
|
||||||
array('P1Y2M3DT4H5M6S', 0, '+ 1y 2m 3d 04:05:06'.$ms, null),
|
array('P1Y2M3DT4H5M6S', 0, '+ 1y 2m 3d 04:05:06'.$ms, null),
|
||||||
|
array('PT1M60S', 0, '+ 00:02:00'.$ms, null),
|
||||||
|
array('PT1H60M', 0, '+ 02:00:00'.$ms, null),
|
||||||
|
array('P1DT24H', 0, '+ 2d', null),
|
||||||
|
array('P1M32D', 0, '+ 1m 32d', null),
|
||||||
|
|
||||||
array('PT0S', 1, '0s', '0s'),
|
array('PT0S', 1, '0s', '0s'),
|
||||||
array('PT1S', 1, '- 00:00:01'.$ms, '-1s'),
|
array('PT1S', 1, '- 00:00:01'.$ms, '-1s'),
|
||||||
@ -182,6 +186,10 @@ EODUMP;
|
|||||||
array('P5M', 1, '- 5m', null),
|
array('P5M', 1, '- 5m', null),
|
||||||
array('P6Y', 1, '- 6y', null),
|
array('P6Y', 1, '- 6y', null),
|
||||||
array('P1Y2M3DT4H5M6S', 1, '- 1y 2m 3d 04:05:06'.$ms, null),
|
array('P1Y2M3DT4H5M6S', 1, '- 1y 2m 3d 04:05:06'.$ms, null),
|
||||||
|
array('PT1M60S', 1, '- 00:02:00'.$ms, null),
|
||||||
|
array('PT1H60M', 1, '- 02:00:00'.$ms, null),
|
||||||
|
array('P1DT24H', 1, '- 2d', null),
|
||||||
|
array('P1M32D', 1, '- 1m 32d', null),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user