假设我有一个DateInterval是1年,另一个是3个月。
是否可以将一个相互分开并得到4的答案,也就是说,在1年的间隔中有4个3个月的间隔?
答案 0 :(得分:0)
日期不适合数学运算。我们可以做加法和减法,就是这样。乘法没有意义(1个月12个月= 1平方年?)但是除法可以被理解为“这个间隔有多少?”这可以通过重复减法来实现。
为DateTimeImmutable
创建now
。 add
您尝试执行分区的第一个区间。然后,subtract
第二个间隔,直到您获得小于(或等于)原始DateTimeImmutable
的新日期/时间。计算这需要多少次。那是你的分工答案。
答案 1 :(得分:0)
您可以尝试将DateInterval
转换为秒并将其除以:
$dateInterval1 = new DateInterval('P1Y');
$dateInterval2 = new DateInterval('P3M');
$dateInterval1Secs = date_create('@0')->add($dateInterval1)->getTimestamp();
$dateInterval2Secs = date_create('@0')->add($dateInterval2)->getTimestamp();
var_dump($dateInterval1Secs / $dateInterval2Secs);
当然,这非常精确,此代码输出4.0555555555556
答案 2 :(得分:0)