我想计算她生日时的选民年龄基数,在我的实体中,我创建了一个像这样的函数
// voters.php
public function getAge()
{
$birthday = $this->birthday;
$age = date_diff(date_create($birthday),date_create('today'))->y;
return $age;
}
我在这样的Twig中呈现这个
<td>{{ entity.getAge() }}</td>
但它显示以下错误:
&#34;在呈现模板期间抛出异常(&#34;警告:date_create()期望参数1为字符串,对象给定&#34;)在DuBundle:Voters:index.html中。第32行的树枝。&#34; ..
如何解决这个问题?我在Symfony 1.4中使用Php模板的旧项目中使用它,它可以毫无问题地渲染当前的选民年龄。为什么它不能在Twig上工作?
在旧的Symfony 1.4中,我使用这种方式
<td><?php echo date_diff(date_create($total->birthday), date_create('today'))->y; ?></td>
答案 0 :(得分:4)
如果您的$birthday
字段是DateTime
对象,则可以使用此方法:
public function getAge()
{
if (!$this->birthday) return "";// put here what you want if no birthdayprovided
$now = new \DateTime('now');
return $now->diff($this->birthday)->format("%y");
}
希望这个帮助