如何在 Twig 中调用 'time_diff' 函数
代码
{{ post.created_at|time_diff }}
输出
The filter "time_diff" does not exist
如果您使用 Symfony 2,
并且想使用一些 原生树枝扩展
你必须将类似的服务声明为:
services:
twig.extension.date:
class: Twig_Extensions_Extension_Date
tags:
- { name: twig.extension }
首先你需要:
composer require twig/extensions
然后您需要注册日期扩展:
$twig->addExtension(new Twig_Extensions_Extension_Date());
之后您可以使用 time_diff 过滤器。 全部在文档中
我建议您使用KnpTimeBundle
因此您可以简单地与当前日期进行比较:
{# Returns something like "3 minutes ago" #}
{{ time_diff(myEntity.getMyTimeField) }}
与另一个日期比较:
{# Returns something like "3 minutes ago" #}
{{ time_diff(myEntity.getMyTimeField , to ) }}
默认启用翻译,只需查看翻译文件或根据需要添加即可。
希望这有帮助
只需安装时间包,|ago 过滤器就会自动工作。
composer req knplabs/knp-time-bundle
{{ post.created_at|ago }}
更现代的方法是使用刺激https://www.stimulus-components.com/docs/stimulus-timeago
即使对于静态页面(例如 SPA),显示的时间也是准确的。