以TYPO3流体形式转换数据

时间:2017-05-10 06:13:18

标签: typo3

我需要你的帮助。我有以下表格:

{namespace femanager=In2code\Femanager\ViewHelpers}
<div class="femanager_fieldset femanager_membershipend control-group">
    <label for="femanager_field_membershipend" class="control-label">
        <f:translate key="tx_feusersplus_domain_model_user.membershipend" default="Expiration date of the membership"/>
    </label>
    <div class="controls">
        <femanager:form.textfield
                disabled="true"
                id="femanager_field_membershipend"
                property="membershipend"
                class="input-block-level"
                additionalAttributes="{femanager:Validation.FormValidationData(settings:settings,fieldName:'membershipend')}"
        />
    </div>
</div>

它以下一种格式获得日期 - 1493942400.我怎样才能好好看看日期?谢谢你的建议!

1 个答案:

答案 0 :(得分:1)

您的属性似乎在模型中声明为整数(unix时间戳)。

您可以将字段更改为以下内容:

<femanager:form.textfield
            disabled="true"
            id="femanager_field_membershipend"
            property="membershipend"
            class="input-block-level" value="{yourModel.membershipend-> f:format.date(format: 'd.m.Y')}"
            additionalAttributes="{femanager:Validation.FormValidationData(settings:settings,fieldName:'membershipend')}"
    />

这会将属性格式化为可读日期。但在此之后,您将无法正确保存财产。如果属性实际上是整数,则需要编写转换器以将日期转换为unix时间戳。它只是反过来must work like here而且我认为TYPO3没有开箱即用的正确转换器。

我建议您将属性更改为DateTime(包括数据库字段)。然后,您可以使用TYPO3的DateTimeConverter正确保存数据。

编辑:在您的情况下,字段已禁用=“true”,这意味着数据不会被提交。在这种情况下,您在提交表单后不应该遇到转换问题。