我正在尝试在形式上处理时区。
我的日期以 UTC 格式存储。我希望表单在时区(欧洲/巴黎)和用户时转换此日期输入日期,日期在数据库中以UTC格式转换回。
这是我的表格:
<?php
namespace AcmeMyBundleForm;
use SymfonyComponentFormAbstractType;
/**
* Broadcasting form without broadcast choice
*/
class BroadcastingEditType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
var_dump(get_class($builder));
$builder
->add('id_broadcasting', 'genemu_plain',
array('label'=>'Id')
)
->add('start_time', 'datetime',
array(
'label' => 'Début',
'required' => true,
'date_widget' => 'single_text',
'time_widget' => 'choice',
'model_timezone' => 'UTC',
'view_timezone' => 'Europe/Paris',
'attr' => array('class' => 'input')
)
);
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(
array(
'data_class' => 'EddVavBundleEntityBroadcasting',
'view_timezone' => 'UTC',
)
);
}
public function getName()
{
return 'acme_mybundle_broadacasting_type';
}
}
我已经尝试了选项model_timezone和view_timezone的其他值,但是日期值保留在 UTC 而不是欧洲/巴黎。
我的默认时区是欧洲/巴黎。
我错过了什么?.
它可能
来自setDefaultOptions
,在那里,view_timezone
设置为'UTC'
...
这可能是问题所在吗?