Php 从另一个日期间隔中减去一个日期间隔
如何制作Php 从另一个日期间隔中减去一个日期间隔,php,date,dateinterval,Php,Date,Dateinterval,如何制作$date1-$date2?我在谷歌上搜索了好几个小时。使用获取秒数,然后进行减法运算 $date1 = new DateInterval('PT100S'); //100 seconds $date2 = new DateInterval('PT20S'); //20 seconds 这就是你想要的吗?这应该适合你: 在这里,我只需从定义的$keys中获取两个DateInterval对象。这样我就可以在两个数组中循环并减去值。用计算出的值创建一个新对象,然后返回 echo $dat
$date1-$date2
?我在谷歌上搜索了好几个小时。使用获取秒数,然后进行减法运算
$date1 = new DateInterval('PT100S'); //100 seconds
$date2 = new DateInterval('PT20S'); //20 seconds
这就是你想要的吗?这应该适合你: 在这里,我只需从定义的
$keys
中获取两个DateInterval对象。这样我就可以在两个数组中循环并减去值。用计算出的值创建一个新对象,然后返回
echo $date1->format('%s') - $date2->format('%s');
你尝试过什么或做过一些研究吗?是的,我在谷歌上搜索了好几个小时……仅供参考:在你尝试接受所有答案之前,你可以先接受答案谁对你帮助最大,谁解决了你的问题()。你不能。你得选一个。只要选择一个,你认为对你帮助最大并解决了你的问题
<?php
$date1 = new DateInterval('PT100S');
$date2 = new DateInterval('PT20S');
function subtractDateIntervals($intervalOne, $intervalTwo) {
$keys = ["y", "m", "d", "h", "i", "s"];
$intervalArrayOne = array_intersect_key((array)$intervalOne, array_flip($keys));
$intervalArrayTwo = array_intersect_key((array)$intervalTwo, array_flip($keys));
$result = array_map(function($v1, $v2){
return abs($v1 - $v2);
}, $intervalArrayOne, $intervalArrayTwo);
return new DateInterval(vsprintf("P%dY%dM%dDT%dH%dM%dS", $result));
}
var_dump(subtractDateIntervals($date1, $date2));
?>
object(DateInterval)#3 (15) {
//...
["s"]=>
int(80)
//...
}