【问题标题】:How to validate datetime format "yyyy-MM-ddTHH:mm:ss.sssZ" in Symfony 2 form如何在 Symfony 2 表单中验证日期时间格式“yyyy-MM-ddTHH:mm:ss.sssZ”
【发布时间】:2015-03-26 16:14:03
【问题描述】:

你们当中有人知道如何以 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 POST 到 Symfony api

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

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

谢谢!

【问题讨论】:

  • 我们可以在您的实体中将约束应用于此字段吗?
  • 根据 ICU 54.1 格式文档,相信您需要.SSS 小数秒;您可能还需要将T 括在引号中:'T'
  • 捆绑的 symfony 日期时间验证器不支持您的日期模式。请参阅DateTimeValidatorDateValidator。因此,您可以编写自定义实现自己的正则表达式模式或直接使用RegEx。希望对您有所帮助
  • @D4V1D:我的约束:/** * @var DateTime * * @ORM\Column(name="Target_Date", type="datetime", nullable=false) * @Assert\NotBlank() * @Assert\DateTime() */ private $Target_Date;
  • 让我们知道哪种解决方案适合您!祝你好运

标签: php symfony date datetime symfony-forms


【解决方案1】:

我找到了解决方案。我刚刚将“日期”更改为“日期时间”,将“yyyy-MM-ddTHH:mm:ss.sssZ”更改为“yyyy-MM-dd'T'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));
    }

感谢大家的帮助!!

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 1970-01-01
    • 2014-01-18
    • 2022-11-29
    • 2016-10-02
    • 1970-01-01
    • 2016-01-26
    • 2015-02-07
    • 1970-01-01
    相关资源
    最近更新 更多