在我的表单中,用户选择何时只想这样购买:
->add('start_date', 'date', array(
'input' => 'datetime',
'widget' => 'choice',
))
现在我想在此字段中将此日期保存到数据库中:
/**
* @var \DateTime
*
* @ORM\Column(name="campaign_list_end_date", type="date", nullable=true)
*/
private $endDate;
因此,当提交表单时,我会得到日期。但它是一串字符串:
$data = $request->request->get('courier');
echo var_dump($data['start_date']); die;
array (size=3)
'month' => string '2' (length=1)
'day' => string '1' (length=1)
'year' => string '2012' (length=4)
如何将此值转换为DateTime对象?
我试过这样的事情,它没有用:
$date = new DateTime('now');
$start_date = $date->setTimestamp($data['start_date']);
有什么想法吗?
答案 0 :(得分:1)
使用symfony表单时,您应该从表单本身检索发布的数据。表单会将数据转换为正确的类型:
$date = $form->get('start_date')->getData();
此外,如果您的表单绑定到实体,您还可以获取带有提取到其中的已发布值的绑定实体:
$entity = $form->getData();