Symfony4 表单 DateTimeType 字段顺序

Symfony4 forms DateTimeType field order

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

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

我正在使用此代码:

$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 将输出:

如何按德语日期时间格式对字段进行排序?像这样(日、月、年、时、分):

我相信 formatwidget = choice to render a datetime field 作为 select 输入的正确选项,因为:

Defines the widget option for both the DateType and TimeType. This can be overridden with the date_widget and time_widget options.

  1. 因此,格式选项应该如下所示:

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

    $builder->add('myDate', 'datetime', array(
        'date_widget' => 'single_text',
        'time_widget' => 'choice',
        ...
    ));
    
  3. 另一种选择是,按照 的建议,对每个日期时间组件分别使用 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'.