Symfony4 DateTimeType显示无效日期

Symfony4 DateTimeType显示无效日期,symfony,datetime,Symfony,Datetime,我不明白为什么要通过Symfony表单创建DayTimePicker控件: public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->add('start', DateType::class, array( 'attr' => array( ), 'data' => ne

我不明白为什么要通过Symfony表单创建DayTimePicker控件:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('start', DateType::class, array(
            'attr' => array(
            ),
            'data' => new DateTime('last day of previous month')
        ))

        ->add('end', DateType::class, array(
            'attr' => array(
            ),
            'data' => new \DateTime("now")
        ))

        ->add('submit', SubmitType::class, array('attr' => array('label' => 'Generate'))
    ;
}

收到选择日期2018年4月31日,因为选择此日期并发送此日期的表单甚至未通过验证,所以为什么会生成此日期?

您需要告诉DateTime如何格式化日期。尝试:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('start', DateType::class, array(
            'attr' => array(
            ),
            'widget' => 'single_text',
            'data' => new DateTime('last day of previous month')->format('Y-m-d')
        ))

        ->add('end', DateType::class, array(
            'attr' => array(
            ),
            'widget' => 'single_text',
            'data' => new \DateTime("now")->format('Y-m-d')
        ))

        ->add('submit', SubmitType::class, array('attr' => array('label' => 'Generate'))
    ;
}