I've got an entity with a starting date and an ending date.
Is it possible to get the difference in time between them by using twig?
I've got an entity with a starting date and an ending date.
Is it possible to get the difference in time between them by using twig?
There's no built-in function to do that, but you can easily do it yourself, extending twig is easy!
The quick'n'easy way is to do it with twig's simple function class:
The reusable way is to create a twig extension (documented on the same link). That's still easy.
Also note there is an existing Date extension from Sensio Labs that offer a time_diff filter.
Then you can use it like this:
{{ entity.ending_date|time_diff(entity.starting_date) }}
Since PHP 5.3 There is another option without to write an extension.
This example show how to calc the plural day/days
Explanation:
PHP 5.3
DateTime
object hasdiff()
method which return aDateInterval
object with the result difference betweenendDate
andbeginDate
TwigTwig
date
function always return aDateTime
object so we can calldiff
methodFinally we can access to the properties of the
DateInterval
object or format it with the Twigdate
filter.Note: There is no need of wrap
endDate
orstartDate
with thedate
function if the variable is already aDateTime
object.Note2:
DateTime
is used here as a synonym ofDateTimeInterface
.