在我的系統中,數據庫時間戳記錄爲UTC值。Symfony2在表單中用時區呈現datetime
每個用戶的個人資料中都有一個時區記錄。登錄時,時區值從其配置文件傳輸到其會話($ session-> set('timezone',$ tz);)。
我的大部分代碼都使用Sonata INTL軟件包,因此用戶可以看到他們的時區正確顯示的日期時間值,(表格字段中的除外)。
我最近發現了一些Symfony2類型的model_timezone和view_timezone字段。我可以使字段顯示正確的值(如下面的代碼片段所示),但是我想了解如何從用戶會話填充view_timezone? (我猜我可以通過在$選擇以某種方式?)
事件控制器片段:
$object = <object loaded>;
$form = $this->createForm(new MyEventType(), $object);
MyEventType表單代碼:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('id', null, array(
'label' => 'Event ID',
));
$builder->add('changed', 'datetime', array(
'date_widget' => 'single_text',
'date_format' => \IntlDateFormatter::SHORT,
'time_widget' => 'single_text',
'model_timezone' => 'UTC',
'view_timezone' => 'Pacific/Auckland',
));
和最新的問題?您可以將會話值添加到'view_timezone'選項 – Hast 2013-03-04 10:58:18
嗨哈斯特,我想這個問題應該是措辭:「我如何獲得我的會話價值的形式?」我有許多具有日期時間字段的表單。所以使用的方法應該很容易重複。 – ritter 2013-03-04 19:56:49