- var_dump: documentation ( source)
- array_filter: documentation ( source)
<?php
class MyInterval extends DateInterval
{
public static function instance(DateInterval $di)
{
$date = array_filter(array(
'Y' => $di->y,
'M' => $di->m,
'D' => $di->d,
));
$time = array_filter(array(
'H' => $di->h,
'M' => $di->i,
'S' => $di->s,
));
$specString = 'P';
foreach ($date as $key => $value) {
$specString .= $value.$key;
}
if (count($time) > 0) {
$specString .= 'T';
foreach ($time as $key => $value) {
$specString .= $value.$key;
}
}
return new static($specString === 'P' ? 'PT0S' : $specString);
}
}
$diff = (new DateTime('yesterday'))->diff(new DateTime('tomorrow'));
$myDiff = MyInterval::instance($diff);
var_dump($myDiff);