【发布时间】: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 日期时间验证器不支持您的日期模式。请参阅DateTimeValidator 或DateValidator。因此,您可以编写自定义实现自己的正则表达式模式或直接使用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