2017-04-17 118 views
0

我有一個名爲「checkin_at」的DateTime屬性的Symfony3中的實體。Symfony3格式的Unix時間戳輸入

我想創建一個表單,其中checkin_at的輸入是一個unix時間戳,並且它存儲該時間戳的相應日​​期時間。

E.g.我會輸入1498867201,它會存儲2017-07-01 00:00:01我的實體。

我看不出如何讓DateTimeType字段接受UNIX時間戳作爲有效條目,或者我無法弄清楚如何讓表單自動將NumberType轉換爲實體的DateTime。

請指教:)

+2

使用[數據變壓器(http://symfony.com/細化二傳手doc/current/form/data_transformers.html)將Unix Timestamp轉換爲DateTime。無論如何,你不喜歡有一些GUI圖形日期選擇器? – Crozin

回答

1

如何爲checkin_at變量創建一個二傳手?

在實體

你可以這樣:

public function setCheckinAt(string $checkinAt){ 
$this->checkinAt=date("Y-m-d H:m:s", $checkinAt); 
} 

你可以用正則表達式以上驗證use Symfony\Component\Validator\Constraints as Assert;如果你喜歡

+0

或者如果你想保留原始的setter,那麼你可以使用數據轉換器:http://symfony.com/doc/current/form/data_transformers.html –