Symfony2 DATEDIFF function

I need to populate a table in TWIG with data from a database. Everything is fine except for this:

I need to have a column with DATEDIFF property to get the number of days.

TODAY-dateFromDateBase

Question: How to get the number of days in a cycle in a branch?

here is my branch:

<table>
            <thead>
            <tr>
                <form action="" method="post" {{ form_enctype(searchform) }} class="form-index-permits">
                    <td>L.p </td>
                    <td>ID PRZEPUSTKI {{ form_widget(searchform.PermitId) }}</td>
                    <td>Name{{ form_widget(searchform.Permitname) }}</td>
                    <td>Surname {{ form_widget(searchform.Permitsurname) }}</td>
                    <td>Company {{ form_widget(searchform.Company) }}</td>
                    <td>GW {{ form_widget(searchform.Contractor) }}</td>
                    <td>Dayleft {{ form_widget(searchform.Dayleft) }}</td>
                    <td>End date {{ form_widget(searchform.date, { 'attr': {'class': 'datepicker'} }) }}</td>

                </form>
            </tr>

            </thead>
            {% for permit in permitcollection %}
                <tbody>
                <td>{{ loop.index }}</td>
                <td>{{ permit.getPermitid()|number_format(0, '.', ' ') }}</td>
                <td>{{ permit.getPermitname() }}</td>
                <td>{{ permit.getPermitsurname() }}</td>
                <td>{{ permit.getPermitsCompany().getName() }}</td>
                <td>{{ permit.getPermitsContractor().getName() }}</td>
                <td> HERE I WANT TO DISPLAY DAYS LEFT</td>
                <td>{{ permit.getExpirationdate()|date('Y-m-d') }}</td>

                </tbody>
            {% endfor %}
        </table>

      

Is this possible?

{{ permit.getExpirationdate()|date('Y-m-d') - "now"|date('Y-m-d')  }}

      

+3


source to share


1 answer


First solution (recommended) "Use an existing library":

You can use KnpTimeBundle

In Twig: This compares to the current date:

{# Returns something like "3 minutes ago" #}
{{ time_diff(permit.expirationDate) }}

      

This is a comparison with another date:

{# Returns something like "3 minutes ago" #}
{{ time_diff(permit.expirationDate, anotherDate) }}

      



Second DIY solution:

Make a diff via php function:

$calcFrom = permit.getExpirationdate()

$now = new \DateTime('now');
$now->diff($calcFrom)->format("%a")

      

And make it available through the Twig extension or directly in a helper method in the entity.

Another possible solution is to register a custom DQL function to work in the repository

Hope for this help

+4


source







All Articles