symfony 时间显示格式?

cbwuti44  于 2023-02-09  发布在  其他
关注(0)|答案(7)|浏览(143)

我正在使用symfony2和sonata管理包制作应用程序。

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

但还是一样。
请给予我如何使用时间显示格式?

zengzsys

zengzsys1#

尝试使用

->add('fromDate','datetime',array('date_format' => 'yyyy-MM-dd HH:mm:ss'))

顺便说一下,相关代码是here。我认为您的format选项会被系统覆盖,因此使用date_format非常重要。对于应用程序范围的解决方案,也可以查看this question

yptwkmov

yptwkmov2#

如果您使用SonataIntlBundle,则日期格式为:

$list->add('createdAt', 'date', array(
    'pattern' => 'yyyy-MM-dd',
))

在www.example.com中描述https://docs.sonata-project.org/projects/SonataIntlBundle/en/3.x/reference/datetime/#php-usage,其格式如下:https://www.php.net/manual/en/class.intldateformatter.php

gcuhipw9

gcuhipw93#

上面的内容对我来说都不起作用,所以我冒险检查了页面源代码,它将我指向所使用的模板:

<!-- 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'])

而且奏效了。
注意format是常规的date(),并且只需要使用一个占位符标记,如y表示year,因为yyyy生成2017201720172017

a64a0gku

a64a0gku4#

我知道这是一个老线索,但我希望它能帮助别人...
试着加上这一点,就像carzogliore说的(但引用错过了从日期时间):

->add('fromDate', 'datetime', array('format' => 'yyyy-MM-dd HH:mm:ss'))
bf1o4zei

bf1o4zei5#

您必须指明“DateTime”是您要使用的类型,然后使用格式键,例如:

->add('fromDate',datetime,array('format' => 'yyyy-MM-dd HH:mm:ss'))

在内部,Sonata将使用list_datetime.html.twig,因为你引用“Datetime”作为类型,并且包含格式选项。下面你可以看到list_datetime.html.twig sonata基本实现:

{% extends admin.getTemplate('base_list_field') %}

{% block field %}
{%- if value is empty -%}
    &nbsp;
{%- elseif field_description.options.format is defined -%}
    {{ value|date(field_description.options.format) }}
{%- else -%}
    {{ value|date }}
{%- endif -%}
{% endblock %}
hjqgdpho

hjqgdpho6#

我的“问题”是不同的。因为我激活了Sonata Intl包,它用它来格式化日期时间列表。

->add('startAt', 'datetime', array(
                'dateType' => IntlDateFormatter::LONG,
                'timeType' => IntlDateFormatter::SHORT
            ))
afdcj2ne

afdcj2ne7#

在现代版本的奏鸣曲中,我设法让它像这样运作:

$listMapper->add('dateadd', 'datetime', array('format' => 'y-m-d H:m:s'));

相关问题