【发布时间】:2014-10-13 01:58:17
【问题描述】:
我有 ArrayDataProvider,其字段类型为 DateTime - 生日。 我将该数据提供程序用于视图部分中的网格视图。
由于生日包含出生年份,因此排序未按预期工作。 有没有办法告诉排序机制不计算年份,只按月和日排序?也许是自定义排序功能?
编辑: 类似 C++ 中的 sort 的东西,您可以在其中传递比较函数。
编辑当前解决方案说明: 我目前的解决方案是将出生年份作为一个单独的字段包含在数组中,并将出生日期的年份设置为当前年份。现在日期来自同一年并且排序工作。但是出生年份的单独字段感觉不对。我希望我能从一个日期对象中获取所有必要的数据。
这个独立的领域磨砺了我的齿轮。这并不完美。
编辑: 哦,还有它的 Yii2
更新 还有一个 PHP 数组排序函数接受比较回调 - 例如 uasort 可以用于像我这样的关联数组:
uasort($persons, function($a, $b){
return strcasecmp( $b['date']->format('m-d'), $a['date']->format('m-d') );
});
现在我需要找到将它实现到 ArrayDataProvider 中的方法。这里有什么想法吗?
【问题讨论】:
-
请发布您的代码
-
我认为这里没有使用任何代码。您可以在 ArrayDataProvider 或任何数据提供者上设置自定义排序吗?
标签: php sorting gridview yii2 dataprovider