Yii2 数据格式化

yiii18nFormatter格式化小助手

一、常用的属性

(1)$dateFormat
日期格式:yyyy-MM-dd,或者 "short", "medium", "long", or "full"

(2)$datetimeFormat
具体时间格式:yyyy-MM-dd HH:mm:ss

(3)$locale
区域位置,如果没有设置,将使用 yiibaseApplication::$language,按照这一区域的习惯显示格式

(4)$defaultTimeZone
时区,默认UTC

要使用formatter需要在config中的配置

'components' =>[
    'formatter' => [
        'dateFormat' => 'yyyy-MM-dd',
        'datetimeFormat' => 'yyyy-MM-dd HH:mm:ss',
        'decimalSeparator' => ',',
        'thousandSeparator' => ' ',
        'currencyCode' => 'CNY',
    ],
]

二、格式化

echo Yii::$app->formatter->asEmail('[email protected]');
// 输出: [email protected]
echo Yii::$app->formatter->asParagraphs('hello');
// 值会转换成HTML编码的文本段落,用

标签包裹

hello

; echo Yii::$app->formatter->asUrl('www.baidu.com').'
'; //值会格式化成url的连接www.baidu.com echo Yii::$app->formatter->asImage('my2.jpeg',['alt'=>'图片无法显示']); //图片的链接会转化成图片无法显示 echo Yii::$app->formatter->asBoolean(true); //根据你使用的语言包,输出yes或者是 echo Yii::$app->formatter->asDate(null).'
'; //(未设置) echo Yii::$app->formatter->asPercent(0.125, 2).'
'; // 输出: 12.50% echo Yii::$app->formatter->asTimestamp('now').'
'; //输出时间戳int型 echo Yii::$app->formatter->asTime(1412599260).'
'; // 14:41:00 或者 2:41:00 PM根据你的config中的配置 echo Yii::$app->formatter->asTime('2014-10-06 12:41:00').'
'; // 14:41:00 或者 2:41:00 PM根据你的config中的配置 echo Yii::$app->formatter->asTime('2014-10-06 14:41:00 CEST').'
'; // 14:41:00 或者 2:41:00 PM根据你的config中的配置 echo Yii::$app->formatter->asRaw(1463606983).'
'; //简单输出输入值1463606983 echo Yii::$app->formatter->asText('

hello

').'
'; //将字符串中html标签当做字符串输出><h3>hello</h3> echo Yii::$app->formatter->asHtml('

hello

').'
'; //作为Html的文档输出

hello

echo Yii::$app->formatter->asNtext("

hello.\nword

").'
'; //在字符串中遇到\n可以将它作为换行符实现<h3>hello.
word</h3> echo Yii::$app->formatter->asRelativeTime(1463632983).'
'; // 3个月前 距离现在是几天前 echo Yii::$app->formatter->asDatetime(1463606983).'
'; // 2015-6-16 11:51:43 或者May 19, 2016 5:29:43 AM echo Yii::$app->formatter->asDatetime('now').'
'; //Aug 20, 2016 6:47:39 PM

三.视图部件中的使用

 $model,
    'attributes' => [
        'update_time:datetime',
        [
            'attribute' => 'update_time',
            'format' => 'datetime',
            'value'=> $model->update_time,
        ],
    ],
]) ?>
 $dataProvider,
    'filterModel' => $searchModel,
    'columns' => [
      'update_time:datetime',
      [
            'attribute' => 'update_time',
            'format' => 'datetime',
            'value'=> $model->update_time,
        ],
      ],
]) ?>

在视图部件中,也可以重新定义format,未定义的话,默认是使用component中的

 $model,
        'formatter' => [
            'class' => '\yii\i18n\Formatter',
            'dateFormat' => 'Y-M-d',
            'datetimeFormat' => 'Y-M-d H:i:s',
            'timeFormat' => 'H:i:s', ],
        'attributes' => [
            'update_time:datetime',
        ],
    ]) ?>
     $dataProvider,
        'filterModel' => $searchModel,
        'formatter' => ['class' => 'yii\i18n\Formatter','nullDisplay' => '','datetimeFormat' => 'Y-M-d H:i:s',],
        'columns' => [
          'update_time:datetime',
          ],
    ]) ?>

文章参考:http://blog.csdn.net/u0129790...

你可能感兴趣的:(yii2,formatter,数据格式)