我试图计算我的实体Symfony2中几个日期之间的天数。我有getDateFrom()和getDateTo()的实体,它们返回DateTime。我写函数:
public function getCountDays()
{
$total = array();
foreach($this->getHolidays() as $day)
{
$total[] = (new DateTime($day->getDateTo()->format('Y-m-d')))->diff(new DateTime($day->getDateFrom()->format('Y-m-d')))->format('%a')+1 ;
$sum = array_sum($total);
//print_r( $sum ) ;
}
return $sum;
}
一切都可以,但这不是我需要的。函数返回结果"3567"(第一个日期之间:period为3天,第二个日期之间:period为2天,第三个日期之间:period为1天,第四个日期之间:period为1天)。计算很好,但我只需要返回7。什么好主意吗?
我找到了解决方案,问题很容易解决。Array_sum必须在foreach循环之后,如下所示。
public function getCountDays()
{
$total = array();
foreach($this->getHolidays() as $day)
{
$total[] = (new DateTime($day->getDateTo()->format('Y-m-d')))->diff(new DateTime($day->getDateFrom()->format('Y-m-d')))->format('%a')+1 ;
}
$sum = array_sum($total);
return $sum;
}