如何让Symfony FormComponent使用非常特定的格式初始化日期时间?
所以我有一个FormType,它有一个如何让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
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
格式。然而,这并不适用于我试图实现的更复杂的格式。有什么想法吗?你是如何配置“更复杂的格式”的格式
选项的?我找到了。显然我应该使用本页的格式选项: