Symfony不接受12/12 /任何年度--31 / 12 /任何一年的日期

时间:2014-07-17 20:29:24

标签: symfony

Symfony不接受 12/12 /任何年份 - 31/12 /任何年度之间的日期作为日期,并在下面产生错误。

DateTime::__construct(): Failed to parse time string (31/12/1111) at position 0 (3): Unexpected character

有什么理由?

注意:有人会问为什么我不使用下面的行。我不使用,因为我不希望来自表单类型的表单验证错误。我纯粹是在注释上。如果有人知道如何绕过来自表单类型的表单验证错误,那么我很乐意学习并使用它。

$builder->add('year', 'date', array('widget' => 'single_text', 'format' => 'dd/MM/yyyy'));

汽车实体:

/**
 * @var date
 * @ORM\Column(type="date")
 * @Assert\NotBlank(message="The Year field is required.")
 */
protected $year;

表单类型:

->add('year', 'text', array('label' => 'Year'))

控制器

$cars->setYear(new \DateTime($formdata->getYear()));

1 个答案:

答案 0 :(得分:2)

根据the documentation,您应该更改此行

$cars->setYear(new \DateTime($formdata->getYear()));

到这个

$cars->setYear(\DateTime::createFromFormat('j/m/Y', $formdata->getYear()));