树枝日期筛选器不适用于日期时间对象


Twig date filter not working with DateTime object

我正在使用带有 Doctrine2 和 Twig 的 CI2 作为模板引擎。我正在尝试将实体中的日期显示为字符串,但它对我不起作用。

我将一个实体对象数组发送到模板,循环访问它们并显示其属性:

{% for e in entities %}
    <span><label>username</label>{{e.getUserName}}</span>
    <span><label>email</label>{{e.getEmail}}</span>
    <span><label>date created</label>{{e.getCreatedAt | date('d.M.Y H:i:s')}}</span>
{% endfor %}

getCreatedAt() 方法返回一个 DateTime 对象。我可以在 PHP 中很好地使用这个对象:

echo $e->getCreatedAt->format('YmdHis');

然而,从 Twig 内部,我似乎找不到任何方法来打印字符串。当我尝试上述方式时(我已经阅读了正确的方法),我得到:

date() expects parameter 1 to be string, object given

我尝试了其他几种方法:

{{e.getCreatedAt.format('d.M.Y H:i:s')}}
{{e.getCreatedAt}}
{{e.getCreatedAt | date('d.M.Y H:i:s') |strtotime}}

什么都行不通。

我确保使用 addFilter() 方法添加"日期"Twig 过滤器:

$this->twig->addFilter('date', Twig_Filter_Function('date'));

知道发生了什么吗?

date是一个

内置过滤器,你不需要注册它,尤其是不需要注册php date函数,它不能处理DateTime对象。