TYPO3按日期分组为viewhelper

时间:2017-06-26 04:12:17

标签: typo3 fluid extbase

我有一个简单的模型" item"有3个属性: 标题,描述,日期

现在我想要一个这样的列表:

17年10月10日

标题项目1

标题项目5

17年12月10日

标题项目8

等等

根据groupedFor - grouping objects according to dates

我添加了一个像

这样的吸气剂
/**
 * Get day month year of datetime
 *
 * @return int
 */
public function getDayMonthYearOfDatetime()
{
    return (int)$this->datum->format('dmy');
}

我的列表视图:

<f:groupedFor each="{items}" as="dayMonthYearOfDatetime" groupBy="dayMonthYearOfDatetime" groupKey="datum">
                <tr>
                    <th>{datum}</th>
                </tr>
                <f:for each="{dayMonthYearOfDatetime}" as="calendar">
                    <tr>
                        <td>{item.title}</td>
                    </tr>
                </f:for>
            </f:groupedFor>

现在我得到以下输出:

101017 标题项目1 标题项目5

121017 标题项目8

如何显示正确的日期&#34; 10.10.17&#34;相反&#34; 101017&#34;?

如果我将我的吸气剂更改为:

    return (int)$this->datum->format('d.m.y');

它没有用。

3 个答案:

答案 0 :(得分:0)

如果您从带点的日期字符串返回int,则无法进行分组。

要么你需要返回字符串(但我不知道该函数是否允许返回除int之外的其他内容),或者你需要从计算的整数中计算你的日期字符串。

尝试使用整数caclulations(%100,/ 100%100,/ 10000)或简单子字符串(,0,2,2,2,4,2)的viewhelper来提取日,月,年的值以下串联。

答案 1 :(得分:0)

您只需使用第一个组项的实际日期对象。

所以它会是

<f:format.date format="d.m.Y">{dayMonthYearOfDatetime.0.datum}</f:format>

答案 2 :(得分:0)

return (int)$this->datum->format('d.m.y');

删除(int)