如何验证日期时间格式“;yyyy-MM-ddTHH:MM:ss.sssZ”;以Symfony 2的形式


How to validate datetime format "yyyy-MM-ddTHH:mm:ss.sssZ" in Symfony 2 form

你们中的一个知道如何以Symfony格式验证"yyyy-MM-ddTHH:MM:ss.sssZ"(ISO 8601)格式的日期时间吗?

我的表单类型:

    /**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
        ->add('Name', 'text')
        ->add('Summary', 'textarea')
        ->add('Objective', 'text')
        ->add('Target_Date', 'date', array(
            'widget' => 'single_text',
            'input' => 'datetime',
            'format' => 'yyyy-MM-ddTHH:mm:ss.sssZ',
            ))
        ->add('Type', 'text')
        ->add('Members', 'text', array('mapped'=>false));
    }

从AngluarJS到Symfony api 的POST

目标日期:"2015-04-01T22:00:48.131Z"

但是我得到:Target_Date:这个值无效。

谢谢!

我找到了解决方案。我刚刚将"date"更改为"datetime",将"yyyy-MM-ddTHH:MM:ss.sssZ"更改为"yyyy-MM-dd'HH:MM:ss.SSS"。请参阅以下内容:

    /**
 * @param FormBuilderInterface $builder
 * @param array $options
 */
    public function buildForm(FormBuilderInterface $builder, array $options)
    {
        $builder
        ->add('Name', 'text')
        ->add('Summary', 'textarea')
        ->add('Objective', 'text')
        ->add('Target_Date', 'datetime', array(
            'widget' => 'single_text',
            'input' => 'datetime',
            'format' => "yyyy-MM-dd'T'HH:mm:ss.SSS",
            ))
        ->add('Type', 'text')
        ->add('Members', 'text', array('mapped'=>false));
    }

感谢大家的帮助!!