我想获取两个日期之间的月数,但出现此错误:
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;
}
答案 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;
}