WebサイトでCGridViewを使用して、CArrayDataProviderを介して提供されたデータを表示しています。この理由は、データがさまざまなテーブルにまたがって累積され、追加の計算列で強化されるためです。並べ替えとフィルタリングは通常、このコードで正常に機能します(...は省略された列です):
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'produkt-grid',
'dataProvider'=>new CArrayDataProvider($betroffeneProdukte, array(
'sort' => array(
'attributes' => array(
'bezeichnung',
'datum',
...
),
),
'pagination' => false,
)),
'enableSorting' => true,
'columns'=>array(
array(
'name'=>'bezeichnung',
'header'=>'Bezeichnung',
'value'=>'$data["bezeichnung"]',
),
array(
'name'=>'datum',
'header'=>'datum',
'value'=>'$data["datum"]',
),
...
),
));
問題は日付列です。次のような文字列として並べ替えています(ドイツ語形式):01.10.2012、03.08.2012、10.01.2012、15.02.2012、..。
もちろん、このように正しく並べ替えたいと思います:10.01.2012、15.02.2012、03.08.2012、01.10.2012、..。
誰かが私のためにアイデアを思いついた?