2015-05-07 2 views
1

Я пытаюсь отформатировать дату и разместить каждый элемент (месяц, день и год) внутри div или span. Я использую платформу SaaS, которые обеспечивают дату, как так:Форматирование даты Twig

2015-03-07 22:54:00 

То, что я пытаюсь сделать, это формат этой даты на 3 отдельных предметов и поместить их в DIV так:

<span class="day">07</span> 
<span class="month">March</span> 
<span class="year">2015</span> 

поэтому мне нужно, чтобы лишить все за - и назовите его внутри DIV так:

<span class="day">{{ article.date | split('-')[2] }}</span> 
<span class="month">{{ article.date | split('-')[1] }}</span> 
<span class="year">{{ article.date | split('-')[0] }}</span> 

Это дает мне выход, как:

<span class="day">07 22:54:00</span> 
<span class="month">03</span> 
<span class="year">2015</span> 

Где я застрял, нужно удалить время после дня и изменить месяц на текстовое представление.

Я знаю, что это можно сделать с помощью функций даты PHP, но я не могу заставить это работать. Проблема, с которой я сталкиваюсь, заключается в том, что дату нужно разделить после каждого -.

Есть ли кто-нибудь, кто может мне помочь?

ответ

5

Вы можете использовать функцию date(), а затем date фильтра

Н.Б.: они-действительно разные вещи !!!

{% set dateTime = date(article.date) %} 
<span class="day">{{ dateTime | date('d') }}</span> 
<span class="month">{{ dateTime | date('F') }}</span> 
<span class="year">{{ dateTime | date('Y') }}</span> 

Во-первых, функция date() преобразует строку даты в объект DateTime.

Затем фильтр date заставляет вас выполнять эквивалент функции PHP DateTime::format, поэтому вы можете использовать отдельную нотацию для выведенного вывода.

Если вам нужно перевести название месяца в локаль, вы можете подключить фильтр trans, но он должен быть включен первым.

+8

Вам не нужно использовать функцию 'date()'. Вы можете просто использовать фильтр «date» со строкой, которая должна быть перенесена в объект \ DateTime и форматироваться как 'article.date | date ('d')' или '" now "| date ('d')'. – qooplmao

Смежные вопросы