The Date Extension

The Date extension provides the time_diff filter.

You need to register this extension before using the time_diff filter:

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


Use the time_diff filter to render the difference between a date and now.

{{ post.published_at|time_diff }}

The example above will output a string like 4 seconds ago or in 1 month, depending on the filtered date.


Internally, Twig uses the PHP DateTime::diff() method for calculating the difference between dates, this means that PHP 5.3+ is required.


  • date: The date for calculate the difference from now. Can be a string or a DateTime instance.
  • now: The date that should be used as now. Can be a string or a DateTime instance. Do not set this argument to use current date.


To get a translatable output, give a Symfony\Component\Translation\TranslatorInterface as constructor argument. The returned string is formatted as diff.ago.XXX or where XXX can be any valid unit: second, minute, hour, day, month, year.