【问题标题】:Symfony2 timezone with formSymfony2 时区与表单
【发布时间】:2013-11-07 10:49:40
【问题描述】:

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

我的日期以 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 而不是欧洲/巴黎。

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

我错过了什么?

【问题讨论】:

    标签: forms symfony timezone


    【解决方案1】:

    它可能来自setDefaultOptions,在那里,view_timezone被设置为'UTC'...

    这可能是问题吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-20
      • 2023-03-07
      • 2012-07-23
      • 2012-02-09
      • 2012-11-27
      • 2017-01-26
      相关资源
      最近更新 更多