Symfony4表单DateTimeType字段顺序

时间:2018-07-26 18:01:57

标签: forms symfony datetime twig symfony4

我在symfony 4中使用带有DateTimeType的表单。

twig按国际DateTime格式对字段进行排序:月,日,年,小时,分钟。

我正在使用以下代码:

$form = $this->createFormBuilder($task) ->add('start', DateTimeType::class, array('widget' => 'choice', 'format' => 'dd-MM-yyyy') ->add('save', SubmitType::class, array('label' => 'neuen Termin anlegen')) ->getForm();

Twig将输出以下内容:

result is

如何按德语DateTime格式排序字段?像这样(天,月,年,小时,分钟):

enter image description here

1 个答案:

答案 0 :(得分:1)

我相信formatwidget = choicedatetime field呈现为选择输入的正确选项,因为

  

定义DateType和TimeType的小部件选项。这个可以   被date_widget和time_widget选项覆盖。

  1. 因此使用format选项应该如下所示:

    'format' => 'dd-MM-yyyy  HH:mm'
    
  2. ,或者如果您尝试第二个视域并覆盖两个设置,例如

    $builder->add('myDate', 'datetime', array(
        'date_widget' => 'single_text',
        'time_widget' => 'choice',
        ...
    ));
    
  3. 另一个建议是,here建议对每个日期时间组件分别使用form_widget:

    {{ form_widget(form.date.date.day) }}
    {{ form_widget(form.date.date.month) }}
    {{ form_widget(form.date.date.year) }}
    {{ form_widget(form.date.time.hour) }}
    {{ form_widget(form.date.time.minute) }}
    

    This的答案更进一步,并探讨了更多自定义日期字段的方法。

顺便说一句:symfony表单构建器期望日期格式为RFC format。不要将它们与PHP日期格式选项混淆,例如'yyyy-MM-dd HH:i'