2017-04-17 122 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 –