Функция Symfony2 DATEDIFF

Мне нужно заполнить таблицу в TWIG данными из базы данных. Все хорошо, за исключением этого:

Мне нужно иметь столбец со свойством DATEDIFF, чтобы получить количество дней.

СЕГОДНЯ-dateFromDateBase

Вопрос:
Как получить количество дней в петле в ветке?

вот моя веточка:

<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>

Возможно ли что-то подобное?

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

3

Решение

Первое решение (рекомендуется) «Использовать существующую библиотеку»:

Вы можете использовать KnpTimeBundle

В Веточке:
Это сравнить с текущей датой:

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

Это сравнить с другой датой:

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

Второе решение «Сделай сам»:

Сделайте diff с помощью функции php:

$calcFrom = permit.getExpirationdate()

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

И сделать его доступным через Расширение ветки или непосредственно во вспомогательном методе в объекте.

Другое возможное решение это написать зарегистрироваться пользовательская функция DQL делать работу в хранилище

Надеюсь это поможет

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]