如何在Symfony 2表单中验证日期时间格式“yyyy-MM-ddTHH:mm:ss.sssZ”

时间:2015-03-26 16:14:04

标签: php symfony date datetime symfony-forms

您是否知道如何使用Symfony表单中的“yyyy-MM-ddTHH:mm:ss.sssZ”(ISO 8601)格式验证日期时间?

我的formType:

    /**
 * @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

Target_Date:“2015-04-01T22:00:48.131Z”

但我明白了:Target_Date:这个值不是valide。

谢谢!

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。我刚刚更改了“约会”#39;到了#datetime'并且&#y; 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));
    }

感谢大家的帮助!!