将一个DateInterval除以另一个

时间:2017-12-01 13:51:48

标签: php datetime

假设我有一个DateInterval是1年,另一个是3个月。

是否可以将一个相互分开并得到4的答案,也就是说,在1年的间隔中有4个3个月的间隔?

3 个答案:

答案 0 :(得分:0)

日期不适合数学运算。我们可以做加法和减法,就是这样。乘法没有意义(1个月12个月= 1平方年?)但是除法可以被理解为“这个间隔有多少?”这可以通过重复减法来实现。

DateTimeImmutable创建nowadd您尝试执行分区的第一个区间。然后,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

Convert DateInterval object to seconds in php

转换为秒

答案 2 :(得分:0)

直接否,因为SHOW CREATE TABLE是一个对象。根据{{​​3}}回答

,这样的事情会有所帮助
DateInterval

this

上查看