显示两个日期之间的月数

时间:2018-10-04 16:44:18

标签: php date symfony4

我想获取两个日期之间的月数,但出现此错误:

  

DateTime :: __ construct()期望参数1为字符串,给定对象

这是功能:

function getMonthDiff()
{
    $currentDateTime = new \DateTime;
    $dateTimeInTheFuture = new \DateTime($this->getSalarie()->getDateEmbauche());
    $dateInterval = $dateTimeInTheFuture->diff($currentDateTime);
    $totalMonths = 12 * $dateInterval->y + $dateInterval->m;

    return $totalMonths;

}

这是我在树枝上显示的方式:

{{ entity.monthDiff }}

这是getDateEmbauche函数

public function getDateEmbauche(): ?\DateTimeInterface
{
    return $this->dateEmbauche;
}

1 个答案:

答案 0 :(得分:1)

如您在PHP documentation中所见:

  

DateTime :: __ construct返回新的 DateTime 对象

  

public DateTime :: __ construct([string $ time =“ now” [,DateTimeZone   $ timezone = NULL]])

因此DateTime需要 String 参数,但是您要为其提供一个 DateTime对象

像这样更改它:

function getMonthDiff()
{
    $currentDateTime = new \DateTime;
    $dateTimeInTheFuture = $this->getSalarie()->getDateEmbauche();
    $dateInterval = $dateTimeInTheFuture->diff($currentDateTime);
    $totalMonths = 12 * $dateInterval->y + $dateInterval->m;

    return $totalMonths;

}