PHP上的Twig异常date_create()

时间:2015-08-06 02:36:35

标签: php symfony twig

我想计算她生日时的选民年龄基数,在我的实体中,我创建了一个像这样的函数

// 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>

1 个答案:

答案 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");
    }   

希望这个帮助