1
我正在Symfony 2.7中進行項目工作。存儲在數據庫中的時間是在選取之前2小時
我們得到了以下問題:
在薩姆的地方,用戶必須選擇一個日期和事件或提醒等 時間他們可以用粉底的DateTimePicker選擇它。
通過請求發送的數據似乎很好: Vermifuge,date => 05.10.2016 16:00,pet => 22,description =>,可更新=> 1,延遲=> 3個月, nextDate => 2017年5月1日16點00分,活性=> 1,_token => QTvz3ykjcngQh2Y5SvW5KWdO2D35Ue8m8CfFtZBQxDc](從symfony的工具欄C/C)
但是,當在控制器I轉儲值:
$this->setup($request);
$entity = $this->findOrThrowNotFound($id);
$this->denyAccessUnlessGranted('edit', $entity->getPet(), 'Unauthorized access!');
$editForm = $this->createCreateForm($entity);
$editForm->handleRequest($request);
dump($editForm['date']);
dump($editForm['date']->getData());
第一次轉儲是:
Form {#2369 ▼
-config: FormBuilder {#2370 ▶}
-parent: Form {#2363 ▶}
-children: OrderedHashMap {#2371 ▶}
-errors: []
-submitted: true
-clickedButton: null
-modelData: DateTime {#2336 ▶}
-normData: DateTime {#2336 ▶}
-viewData: "05.10.2016 16:00"
-extraData: []
-transformationFailure: null
-defaultDataSet: true
-lockSetData: false
}
,第二個:
DateTime {#4733 ▼
+"date": "2016-10-05 14:00:00.000000"
+"timezone_type": 1
+"timezone": "+00:00"
}
所以在某一時刻的時間變化。
在我的phpinfo()我有:
日期/時間的支持使
「奧爾森」 時區數據庫版本2016.3
時區數據庫內部
默認時區歐洲/蘇黎世
感謝您的幫助
嗨, 首先,感謝您的幫助。 我的第一個想法是,在數據庫中有錯誤,但SELECT now()返回'2016-10-05 09:52:00'和PHP代碼返回'2016-10-05 09:52:25 '和'1475653945'顯然他們配置相同(和正確) –
它必須是時區,蘇黎世 - > UTC + 01:00。 除了你的php.ini,你可以在symfony中設置爲默認時區(谷歌它)。 也許你隱藏了TimezoneType字段somwhere? [http://symfony.com/doc/current/reference/forms/types/timezone.html] –
在php.ini中我沒有任何時區設置,但當我做一個轉儲(date_default_timezone_get());我得到正確的「歐洲/蘇黎世」。 我同意你在代碼的某個地方有一個TimeZone誰設置,但無法找到:( 我會繼續挖掘 –