我有一个名为 worker 的实体的日期间隔,有一段时间,请参阅下一个函数:
// Get date of retirement
public function getRetireYear()
{
$this->retireYear = $this->getBirthDay()->add(new \DateInterval('P60Y'));
return $this->retireYear;
}
// Get time left for retirement
public function getTimeToRetirement()
{
// Date of today
$today = new \DateTime('today');
// Calculate date diff between today and retirement day.
$this->timeToRetirement = $today->diff($this->retireYear);
// Return the time to retirement time formated
return $this->formatTimeInterval(
$this->timeToRetirement,
'%r%Y years, %m months, %d days'
);
}
//Format the dateInterval numbers as string
public function formatTimeInterval($aDateDif, $format)
{
return $aDateDif->format($format);
}
此处存储在数据库中的唯一值是$this->getBirthDay()
,然后getRetireYear
生成工人的退休年份(birthDay + 60 年)。
getTimeToRetirement
给出退休某人的剩余时间,并formatTimeInterval($,$)
用于格式化日期间隔。
现在我需要能够以不同的格式使用此 dateInterval,例如,有时我只需要将年份作为整数与视图中的其他值进行比较,因此我需要将这一年作为单个值在视图上访问。
我已经尝试了一些事情,但我不知道正确的方法,所以我没有得到这个问题的更好结论。
有时我还需要其他任务的月份和日期,而不仅仅是年份,这些值应该可以在视图上访问,因为在控制器中我只是搜索对象的 ArrayColletion 并将其传递给视图,否则我必须去up 和 down 数组集合。
有关该问题的更多信息,您可以阅读此线程