我正在使用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'))
但它仍然显示相同。
请给我如何使用格式进行时间显示?
尝试使用
->add('fromDate','datetime',array('date_format' => 'yyyy-MM-dd HH:mm:ss'))
顺便说一句,相关的代码是 这里。我想你的 format
选项被系统覆盖,因此使用非常重要 date_format
代替。有关应用程序范围的解决方案,请查看 这个问题 太。
如果您使用SonataIntlBundle,则日期格式为:
$list->add('createdAt', 'date', array(
'pattern' => 'yyyy-MM-dd',
))
描述于 https://sonata-project.org/bundles/intl/master/doc/reference/datetime.html
我知道这是一个老线程,但我希望它会帮助某人......
尝试添加这个,就像carzogliore说的那样(但是从日期时间错过了引号):
->add('fromDate', 'datetime', array('format' => 'yyyy-MM-dd HH:mm:ss'))
上面没有任何内容对我有用,所以我冒险检查页面源,它指向我使用的模板:
<!-- 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
。
您必须指出“DateTime”是您要使用的类型,然后使用格式键,例如:
->add('fromDate',datetime,array('format' => 'yyyy-MM-dd HH:mm:ss'))
在内部,Sonata将使用list_datetime.html.twig,因为您将“Datetime”称为类型且包含格式选项。下面你可以看到list_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 %}
我的'问题'是不同的。
因为我将sonata intl bundle激活,所以它使用它来格式化日期时间列表。
->add('startAt', 'datetime', array(
'dateType' => IntlDateFormatter::LONG,
'timeType' => IntlDateFormatter::SHORT
))