我有两个间隔:
$intervalFrom = DateInterval('12:00')
$intervalTo = DateInterval('1:30')
输出必须是:
DateInterval('10:30')
我试试
$newInterval = $intervalFrom->sub($intervalTo);
但它不起作用
答案 0 :(得分:0)
您可以使用PT12H
和PT1H30M
创建DateInterval两次。
为了获得差异,您可以使用DateTime diff方法。
创建2个日期时间并传递2个固定的起点,例如"午夜"并为他们两个添加一个间隔。
检索小时数h
和分钟i
并使用它们创建新的DateInterval:
$intervalFrom = new DateInterval('PT12H');
$intervalTo = new DateInterval('PT1H30M');
$d1 = new DateTime("midnight");
$d1->add($intervalFrom);
$d2 = new DateTime("midnight");
$d2->add($intervalTo);
$diff = $d1->diff($d2);
$strResult = sprintf("PT%sH%sM", $diff->h, $diff->i);
$resultDateInterval = new DateInterval($strResult);