我正在使用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'))
但它仍然显示相同。
请告诉我如何使用格式进行时间显示?
答案 0 :(得分:4)
尝试使用
->add('fromDate','datetime',array('date_format' => 'yyyy-MM-dd HH:mm:ss'))
顺便说一句,相关代码是here。我认为您的format
选项会被系统覆盖,因此使用date_format
代码非常重要。对于应用程序范围的解决方案,请查看this question。
答案 1 :(得分:3)
我知道这是一个老话题,但我希望它会帮助某人......
尝试添加这个,就像carzogliore说的那样(但是从日期时间错过了引号):
->add('fromDate', 'datetime', array('format' => 'yyyy-MM-dd HH:mm:ss'))
答案 2 :(得分:2)
如果您使用SonataIntlBundle,则日期格式为:
$list->add('createdAt', 'date', array(
'pattern' => 'yyyy-MM-dd',
))
在https://sonata-project.org/bundles/intl/master/doc/reference/datetime.html
中描述答案 3 :(得分:2)
上面没有任何内容对我有用,所以我冒险检查页面源,它指向我使用的模板:
<!-- 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
。< / p>
答案 4 :(得分:0)
您必须指明“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 %}
答案 5 :(得分:0)
我的“问题”与众不同。 因为我将sonata intl包激活,所以它使用它来格式化日期时间列表。
->add('startAt', 'datetime', array(
'dateType' => IntlDateFormatter::LONG,
'timeType' => IntlDateFormatter::SHORT
))
答案 6 :(得分:0)
在现代版本的Sonata中,我设法使其工作如下:
$listMapper->add('dateadd', 'datetime', array('format' => 'y-m-d H:m:s'));