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?
Since PHP 5.3 There is another option without to write an extension.
This example show how to calc the plural day/days
{# endDate and startDate are strings or DateTime objects #}
{% set difference = date(endDate).diff(date(startDate)) %}
{% set leftDays = difference.days %}
{% if leftDays == 1 %}
1 day
{% else %}
{{ leftDays }} days
{% endif %}
Explanation:
PHP 5.3 DateTime
object has diff()
method which return a DateInterval
object with the result difference between endDate
and beginDate
Twig
Twig date
function always return a DateTime
object so we can call diff
method
Finally we can access to the properties of the DateInterval
object or format it with the Twig date
filter.
Note: There is no need of wrap endDate
or startDate
with the date
function if the variable is already a DateTime
object.
Note2: DateTime
is used here as a synonym of DateTimeInterface
.