在typo3流程中获取/设置日期时间的标准方法是什么?
是否有可编辑的html字段 - 像基本的f:form.textfield一样 - 将允许输入,编辑和保留日期时间?
我知道我可以用例如显示日期时间
<f:format.date format="d.m.Y - H:i:s">{productArticle.classdate}</f:format.date>
但在这种情况下,该值为null无显示任何内容,无论如何都不能进入。在某些版本中,属性是否与f:format.date一起使用?我得到了#34;财产没有注册&#34;我试试的时候。
或者我需要在我的页面上有两个字段,一个用于日期,一个用于时间,我在Action中放在一起?
由于
答案 0 :(得分:4)
我不确定它是否是标准方式,而且我个人不喜欢它......但它可以这样做:
在Fluid中用于新建/编辑操作:
<f:form action="create" objectName="girlfriend">
...
<f:form.textfield property="birthDate" placeholder="1991-12-30 - 18:25:58" value="{newGirlfriend.birthDate->f:format.date(format:'Y-m-d - H:i:s')}" />
...
</f:form>
在你的控制器中,你可以为\ DateTime添加初始化*操作和更新propertyMappingConfiguration,如果标准对你不好(必须为创建和更新操作完成):
public function initializeCreateAction() {
$mappingConfig = $this->arguments['girlfriend']->getPropertyMappingConfiguration();
$mappingConfig->forProperty('birthDate')->setTypeConverterOption(
'TYPO3\Flow\Property\TypeConverter\DateTimeConverter',
\TYPO3\Flow\Property\TypeConverter\DateTimeConverter::CONFIGURATION_DATE_FORMAT,
'Y-m-d - H:i:s'
);
}
有时,不将对象直接传递给控制器,而是在服务层创建它更容易。您还可以查看TypeConverters - 它们不需要initializeActions,您可以轻松覆盖设置更高优先级的现有..