1

我正在尝试以形式处理时区。

我的日期以 UTC 格式存储。我希望表单在时区(欧洲/巴黎)中转换此日期,并且当用户输入日期时,日期在数据库中的 utc 中转换回。

这是我的表格:

<?php
namespace Acme\MyBundle\Form;

use Symfony\Component\Form\AbstractType;

/**
 * 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' => 'Edd\VavBundle\Entity\Broadcasting',
                'view_timezone'     => 'UTC',
            )
        );
    }

    public function getName()
    {
        return 'acme_mybundle_broadacasting_type';
    }
}

我已经为选项 model_timezone 和 view_timezone 尝试了其他值,但日期值仍为 UTC 而不是欧洲/巴黎。

我的默认时区是欧洲/巴黎。

我错过了什么?

4

1 回答 1

0

它可能来自setDefaultOptions, there, theview_timezone设置为'UTC'...

这可能是问题吗?

于 2014-04-02T13:54:42.563 回答