如何让Symfony FormComponent使用非常特定的格式初始化日期时间?

如何让Symfony FormComponent使用非常特定的格式初始化日期时间?,symfony,datetime,Symfony,Datetime,所以我有一个FormType,它有一个DateTimeType字段,如下所示: public function buildForm(formbuilder接口$builder,数组$options) { $builder ->添加('startDate',DateTimeType::class[ '输入'=>'日期时间不可变', “输入格式”=>“Y-m-d\TH:i:s.uO” ]) ; } 我的希望是,如果我提交一个类似于“2019-01-01T00:00:00.000+0100”的sta

所以我有一个FormType,它有一个
DateTimeType
字段,如下所示:

public function buildForm(formbuilder接口$builder,数组$options)
{
$builder
->添加('startDate',DateTimeType::class[
'输入'=>'日期时间不可变',
“输入格式”=>“Y-m-d\TH:i:s.uO”
])
;
}
我的希望是,如果我提交一个类似于“2019-01-01T00:00:00.000+0100”的
startDate
,表单组件将能够使用正确格式初始化的
DateTimeImmutable
对象填充我的DTO

但是,我的
startDate
字段总是以
null
结尾


我做错了什么?

好的,所以最后的解决方案是:

public function buildForm(formbuilder接口$builder,数组$options)
{
$builder
->添加('startDate',DateTimeType::class[
'widget'=>'single_text',
'输入'=>'日期时间不可变',
'格式'=>“yyyy-MM-dd'T'HH:MM:ss.SSSX”,
])
;
}
使用此页面中的格式选项:


好的,所以最后的解决方案是:

public function buildForm(formbuilder接口$builder,数组$options)
{
$builder
->添加('startDate',DateTimeType::class[
'widget'=>'single_text',
'输入'=>'日期时间不可变',
'格式'=>“yyyy-MM-dd'T'HH:MM:ss.SSSX”,
])
;
}
使用此页面中的格式选项:


您好,您是否尝试设置?正如@qdequippe所说的,您需要使用
格式
选项指定预期的格式<只有当
input
设置为
string
时,才会考虑code>input\u格式,而此处的情况并非如此,因为您的输入是一个
datetimeimmunitable
对象。然而,您还需要确保将
widget
选项设置为
single_text
,以使
format
选项发挥有用的作用。@xabbuh当我将
widget
设置为
single_text
并将
format
设置为
Y-m-d
时,它确实从
Y-m-d
格式。然而,这并不适用于我试图实现的更复杂的格式。有什么想法吗?你是如何配置“更复杂的格式”的
格式
选项的?我找到了。显然,我应该使用此页面中的格式选项:您好,您是否尝试设置?正如@qdequippe所说,您需要使用
格式
选项指定预期的格式<只有当
input
设置为
string
时,才会考虑code>input\u格式,而此处的情况并非如此,因为您的输入是一个
datetimeimmunitable
对象。然而,您还需要确保将
widget
选项设置为
single_text
,以使
format
选项发挥有用的作用。@xabbuh当我将
widget
设置为
single_text
并将
format
设置为
Y-m-d
时,它确实从
Y-m-d
格式。然而,这并不适用于我试图实现的更复杂的格式。有什么想法吗?你是如何配置“更复杂的格式”的
格式
选项的?我找到了。显然我应该使用本页的格式选项: