TYPO3 groupedFor viewhelper 根据日期

TYPO3 groupedFor viewhelper according to dates

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

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

10.10.17:

标题项目 1

标题项目 5

12.10.17:

标题项目 8

等等

根据groupedFor - grouping objects according to dates

我加了一个getter赞

/**
 * 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

如何显示正确的日期“10.10.17”而不是“101017”?

如果我将 getter 更改为:

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

没用。

如果您 return int 来自带点的日期字符串,则不能指望进行分组。

要么您需要 return 字符串(但我不知道该函数是否允许 return 除 int 以外的任何其他内容)或者您需要从 计算整数。

尝试使用 viewhelper 进行整数计算 (% 100, / 100 %100, /10000) 或简单的子字符串 (,0,2 ,2,2 ,4,2) 来提取日、月、接下来的连接年份。

您可以简单地使用第一个组项的真实日期对象。

所以会是

<f:format.date format="d.m.Y">{dayMonthYearOfDatetime.0.datum}</f:format>
return (int)$this->datum->format('d.m.y');

删除 (int)