他の回答で提案されているものよりも、日付(またはその他のもの)をフォーマットするよりエレガントな方法があると思います。formatterプロパティをCGridView
使用して、値をフォーマットするアプリケーションのコンポーネントを指定します。デフォルトです。format
したがってformat
、次のようにアプリケーションの構成ファイルでコンポーネントを構成する必要があります。
'components' => array(
...
'format' => array(
'dateFormat' => 'd-m-Y'
)
)
work_date
がすでに Unix タイムスタンプである場合はCGridView
、次のように列を記述するだけで十分です。
array(
'name' => 'work_date',
'type' => 'date'
)
質問のような場合work_date
、列の配列:
array(
'name' => 'work_date',
'type' => 'date',
'value' => 'strtotime($data->work_date)'
)
CFormatterでサポートされていない形式のカスタム フィールドがある場合は、次のように拡張して独自の型 を簡単に追加できます。custom
CFormatter
class MyFormatter extends CFormatter
{
public function formatCustom($value)
{
// format $value parameter, i.e. make date conversion like in the question:
return date("d-m-Y", strtotime($value));
}
}
次に、フォーマットコンポーネントの構成は次のとおりです。
'components' => array(
...
'format' => array(
'class' => 'MyFormatter'
)
)
そして、列は次のように説明されています。
array(
'name' => 'work_date',
'type' => 'custom'
)
この方法では、同じタイプのフィールドをフォーマットするたびに値PHP 式を気にする必要はありません。