Symfony日期时间字段格式

时间:2014-08-31 20:41:10

标签: symfony datetime

我在表格中有一个日期时间字段,我想给格式掩码yyyy-mm-dd hh:mi,我使用以下代码:

$builder->add('beginDate', 'datetime', array('widget' => 'single_text',
                                               'date_format' => 'yyyy-MM-dd  HH:i'))

但是我在表单领域得到的是这样的:

  

2014-08-25T22:37:37Z

我想要像:

  

2014-08-25 22:37

我能得到这个吗?

我见过thisthis,但没有找到一个真实的例子,数小时(24小时格式)和分钟

谢谢

7 个答案:

答案 0 :(得分:11)

您是否在日期时间定义中尝试了以下date_format

'yyyy-MM-dd HH:mm'

而不是你现在拥有的:

'yyyy-MM-dd HH:i'

根据文档,我认为你将PHP日期格式选项与symfony表单构建器期望的RFC格式选项混合在一起。仔细阅读已接受的RFC datetime formats,了解如何进行调整。

答案 1 :(得分:8)

您应该使用接受format optionHTML5 DateTime format

$builder->add(
    'beginDate',
    'datetime',
    array(
        'widget' => 'single_text',
        'format' => 'yyyy-MM-dd  HH:mm'
    )
)

使用format时,应使用date_format选项代替widget = single_text

答案 2 :(得分:4)

你为什么不尝试这个?

    $builder
        ->add('beginDate', 'date', array(
            'widget' => 'single_text',
            'format' => 'yyyy-MM-dd H:mm',
        ));

答案 3 :(得分:1)

你是如何使用Twig或Php为这个结果形成显示的? 也许它可能与parameters.yml et config.yml中的本地人有关,否则就是枝条显示。

http://twig.sensiolabs.org/doc/filters/date.html#timezone

答案 4 :(得分:0)

你有没有试过这样的事情:

$builder->add('beginDate', 'datetime', array(
            'widget' => 'single_text',
            // input format for single_text
            'format' => 'dd/MM/yyyy kk:mm',
        ));

参考: http://symfony.com/doc/current/reference/forms/types/datetime.html 还有这个: http://userguide.icu-project.org/formatparse/datetime#TOC-Date-Time-Format-Syntax

答案 5 :(得分:0)

我有同样的问题,这对我有用

        ->add('closingDate', DateTimeType::class, [
            'date_widget' => 'single_text',
            'date_format' => 'dd.MM.yyyyTH:i',
            'html5' => false,
        ]);

答案 6 :(得分:0)

这种方式对我非常有效

使用Symfony \ Component \ Form \ Extension \ Core \ Type \ DateType;

->add('beginDate', DateType::class, array(
                "widget" => 'single_text',
                "format" => 'yyyy-MM-dd',
                "data" => new \DateTime()
            ))