How to call the 'time_diff' filter in Twig

2019-04-28 08:50发布

问题:

How can I call the 'time_diff' function In Twig

The code

{{ post.created_at|time_diff }}

Output

The filter "time_diff" does not exist

回答1:

If you're using Symfony 2,

And want to use some of the native twig extension

You have to declare as service something like :

services:
    twig.extension.date:
       class: Twig_Extensions_Extension_Date
       tags:
            - { name: twig.extension }


回答2:

At first you need:

composer require twig/extensions

Then you need to register Date extension:

$twig->addExtension(new Twig_Extensions_Extension_Date());

After that you could use time_diff filter. All in docs



回答3:

I suggest You to use the KnpTimeBundle

So you can simply compare with the current date:

{# Returns something like "3 minutes ago" #}
{{ time_diff(myEntity.getMyTimeField) }}

This compare with the another date:

{# Returns something like "3 minutes ago" #}
{{ time_diff(myEntity.getMyTimeField , to ) }}

The translation is enabled by default, simply review the translations files or add as you need.

Hope this help



回答4:

Did you add the date extension?

Add the following line before using this formatting:

$twig->addExtension(new Twig_Extensions_Extension_Date());