我有一个项目,我希望在几个月内显示婴儿的当前年龄,还有一个代码可以计算并显示年龄,但我希望能在几个月内完成。这是mi代码。
<td>{% if entity.birthdate %}{{ ('now'|date('Y') - entity.birthdate|date('Y') - 1) + ('now'|date('Y-m-d')|date('U') - entity.birthdate|date('Y-m-d')|date('U') >= 0 ? 1 : 0) }}{% endif %}</td>
请问好吗?
答案 0 :(得分:4)
虽然在模板/视图中计算值很有诱惑力,但最好将逻辑和表示分开。
我想,显示一个婴儿的年龄是你将来可能会再次想要的东西,所以让它成为entity
上的方法(即 entity
类的函数< / em>的)。
// entity.php
class person
{
// Assumption: $birthdate is a DateTime object.
protected $birthdate;
// getAge() outputs something like this: '1 years, 1 months, 8 days old.'
public function getAge()
{
$now = new \DateTime('now');
$age = $this->getBirthdate();
$difference = $now->diff($age);
return $difference->format('%y years, %m months, %d days old.');
}
public function getBirthdate()
{
return $this->birthdate;
}
public function setBirthdate($birthdate)
{
$this->birthdate = $birthdate;
return $this;
}
}
然后在您的Twig文件中,您可以访问getAge
方法:
{{ entity.age }}
因为我很有兴趣知道如何,你也可以在Twig中这样做;)
{{ date('now').diff((date('2014-1-3'))).format('%y years %m months %d days old') }}