Формат отображения времени?
Я делаю приложение с набором symfony2 и sonata-admin.
public function configureListFields(ListMapper $listMapper)
{
$listMapper
->addIdentifier('id')
->add('fromDate');
показывает время, подобное этому
September 1, 2013 02:00
поэтому я изменил
- ->add('fromDate');
+ ->add('fromDate',null,array('format' => 'yyyy-MM-dd HH:mm:ss'))
но он все равно показывает то же самое.
пожалуйста, дайте мне, как использовать формат отображения времени?
Ответы
Ответ 1
Попробуйте использовать
->add('fromDate','datetime',array('date_format' => 'yyyy-MM-dd HH:mm:ss'))
Кстати, соответствующий код здесь. Я думаю, что ваш параметр format
перезаписывается системой, поэтому важно использовать date_format
. Для решения на уровне приложения также рассмотрите этот вопрос.
Ответ 2
Если вы используете SonataIntlBundle, то форматы даты:
$list->add('createdAt', 'date', array(
'pattern' => 'yyyy-MM-dd',
))
описанный в https://sonata-project.org/bundles/intl/master/doc/reference/datetime.html
Ответ 3
Я знаю, что это старая нить, но я надеюсь, что это поможет кому-то...
Попробуйте добавить это, как сказал carzogliore (но цитаты пропущены из datetime):
->add('fromDate', 'datetime', array('format' => 'yyyy-MM-dd HH:mm:ss'))
Ответ 4
Ничего из вышеперечисленного не сработало для меня, поэтому я рискнул проверить источник страницы, который указал мне на используемый шаблон:
<!-- START
fieldName: date
template: SonataAdminBundle:CRUD:list_date.html.twig
compiled template: SonataAdminBundle:CRUD:list_date.html.twig
-->
<td class="sonata-ba-list-field sonata-ba-list-field-date" objectId="1">11.03.17</td>
<!-- END - fieldName: date -->
И после проверки шаблона я нашел правильное имя с параметром:
{%- elseif field_description.options.format is defined -%}
Итак, я сделал свой код администратора следующим образом
->add('date', null, ['format' => 'd/m/Y'])
и он работал.
Обратите внимание, что формат является обычным форматом date()
, и нужно использовать только одну метку-заполнителя, например y
в течение года, поскольку yyyy
создает 2017201720172017
.
Ответ 5
Вы должны указать, что "DateTime" - это тип, который вы используете, а затем используйте клавишу форматирования, например:
->add('fromDate',datetime,array('format' => 'yyyy-MM-dd HH:mm:ss'))
Внутри, Sonata будет использовать list_datetime.html.twig, поскольку вы ссылаетесь на "Datetime" как тип и который содержит параметры формата. Ниже вы можете увидеть реализацию base_datetime.html.twig соната:
{% extends admin.getTemplate('base_list_field') %}
{% block field %}
{%- if value is empty -%}
{%- elseif field_description.options.format is defined -%}
{{ value|date(field_description.options.format) }}
{%- else -%}
{{ value|date }}
{%- endif -%}
{% endblock %}
Ответ 6
моя "проблема" была другой.
Поскольку у меня есть активный набор сонат, он использует его для форматирования списка datetime.
->add('startAt', 'datetime', array(
'dateType' => IntlDateFormatter::LONG,
'timeType' => IntlDateFormatter::SHORT
))