0

我有这段代码可以从数据库中获取日期并在 powermail 中填充一个输入字段:

termin = TEXT
termin.stdWrap.dataWrap = DB:tx_seminars_seminars:{GP:tx_seminars_pi1|uid}:begin_date
termin.stdWrap.outerWrap = {|}
termin.insertData = 1
termin.htmlSpecialChars  = 1

字段 begin_date 的值以 powermail 形式显示,但我需要以人类可读的格式显示(在 DB 中是 unix 时间)我的问题是从 tstamp 到 %d %m %y

如何格式化?

4

2 回答 2

2

stdWrap有一个日期属性。

#Example where a timestamp is imported:
test.value.field = tstamp
test.value.date = d.m.Y H:i:s

http://wiki.typo3.org/TSref/stdWrap#date

编辑:请注意,这TEXT stdWrap. 您无需修改​​ stdWrap 即可进行简单的包装。在此处添加 {} 将修改时间戳记,使日期无法获得正确的值。

于 2013-07-08T10:08:11.070 回答
0

这是将日期添加为类似时代前格式的最佳解决方案:

渲染流体部分如下:

<f:render section="timeAgo" arguments="{posted:'{posting.datePosted}'}" />

流体部分:

<f:section name="timeAgo">
    <f:variable name="now" value="{f:format.date(date: 'now',format:'%s')}" />
    <f:variable name="posted" value="{f:format.date(date:'{posted}',format:'%s')}" />
    <f:variable name="diff" value="{now - posted}" />
    <f:if condition="{diff} < 60">
        <f:then>Now</f:then>
        <f:else if="{diff} < 3600">
            <f:format.number decimals="0">{diff / 60}</f:format.number> minute ago
        </f:else>
        <f:else if="{diff} < 86400">
            <f:format.number decimals="0">{diff / 3600}</f:format.number> hours ago
        </f:else>
        <f:else if="{diff} < 604800">
            <f:format.number decimals="0">{diff / 86400}</f:format.number> days ago
        </f:else>
        <f:else if="{diff} < 2419200">
            <f:format.number decimals="0">{diff / 604800}</f:format.number> weeks ago
        </f:else>
        <f:else if="{diff} < 29030400">
            <f:format.number decimals="0">{diff / 2419200}</f:format.number> months ago
        </f:else>
        <f:else>{f:format.date(date: '{posted}',format:'%d %B, %Y')}</f:else>
    </f:if>
</f:section>

只需在 arguments="{posted:'{posting.datePosted}'}" 处传递正确的变量对象即可。

谢谢!

于 2020-09-21T05:38:30.707 回答