首页 文章

PHP上的Twig异常date_create()

提问于
浏览
3

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

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

但它显示以下错误:

“在渲染模板期间抛出异常(”警告:date_create()期望参数1为字符串,对象给定“)在DuBundle:Voters:index.html.twig第32行 . ”..

如何纠正这个问题?我在Symfony 1.4中使用Php模板的旧项目中使用它,它可以毫无问题地渲染选民的当前年龄 . 为什么它不适用于Twig?

在较旧的Symfony 1.4中,我使用这种方式

<td><?php echo date_diff(date_create($total->birthday), date_create('today'))->y; ?></td>

1 回答

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

    希望这有帮助

相关问题