У меня есть ArrayDataProvider с полем типа DateTime - дата рождения. Я использую этот dataprovider для gridview в виде секции.Yii Датапровердер Дата сортировки
С момента рождения, включая рождение, сортировка не работает должным образом. Есть ли способ каким-то образом объяснить механизм сортировки не для учета лет и только сортировать по месяцам и дням? Возможно пользовательская функция сортировки?
Редактировать: Нечто вроде sort
на C++, где вы можете передать функцию сравнения.
Edited описание текущего решения: Моего решения в настоящее время включает в год рождения в качестве отдельного поля в массиве и года BirthDate в установлены на текущий год. Теперь даты относятся к тому же году, и сортировка работает. Но отдельное поле для года рождения не кажется правильным. Я хотел бы получить все необходимые данные из одного объекта даты.
Это отдельное поле измельчает мои шестерни. Это не идеально.
Edit: О, и его Yii2
Update Есть также PHP массив сортировки, принимающих параметр сравнения обратного вызова - например uasort, которые могут быть использованы на ассоциативные массивы, как у меня:
uasort($persons, function($a, $b){
return strcasecmp($b['date']->format('m-d'), $a['date']->format('m-d'));
});
Теперь мне нужно найти способ реализовать его в ArrayDataProvider. Есть идеи?
доброжелательно опубликовать свой код – Athipatla
Я не думаю, что здесь есть код.Можете ли вы настроить пользовательскую сортировку на ArrayDataProvider или на любом из поставщиков данных? – Klamberext