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('cebe@example.com');
// 输出: <a href="mailto:cebe@example.com">cebe@example.com</a>
echo Yii::$app->formatter->asParagraphs('hello');
// 值会转换成HTML编码的文本段落,用<p>标签包裹<p>hello</p>;
echo Yii::$app->formatter->asUrl('www.baidu.com').'<br>';
//值会格式化成url的连接<a href="http://www.baidu.com">www.baidu.com</a>
echo Yii::$app->formatter->asImage('my2.jpeg',['alt'=>'图片无法显示']);
//图片的链接会转化成<img src="my2.jpeg" alt="图片无法显示">
echo Yii::$app->formatter->asBoolean(true);
//根据你使用的语言包,输出yes或者是
echo Yii::$app->formatter->asDate(null).'<br>';
//<span class="not-set">(未设置)</span>
echo Yii::$app->formatter->asPercent(0.125, 2).'<br>';
// 输出: 12.50%
echo Yii::$app->formatter->asTimestamp('now').'<br>';
//输出时间戳int型
echo Yii::$app->formatter->asTime(1412599260).'<br>';
// 14:41:00 或者 2:41:00 PM根据你的config中的配置
echo Yii::$app->formatter->asTime('2014-10-06 12:41:00').'<br>';
// 14:41:00 或者 2:41:00 PM根据你的config中的配置
echo Yii::$app->formatter->asTime('2014-10-06 14:41:00 CEST').'<br>';
// 14:41:00 或者 2:41:00 PM根据你的config中的配置
echo Yii::$app->formatter->asRaw(1463606983).'<br>';
//简单输出输入值1463606983
echo Yii::$app->formatter->asText('<h3>hello</h3>').'<br>';
//将字符串中html标签当做字符串输出><h3>hello</h3>
echo Yii::$app->formatter->asHtml('<h3>hello</h3>').'<br>';
//作为Html的文档输出<h3>hello</h3>
echo Yii::$app->formatter->asNtext("<h3>hello.\nword</h3>").'<br>';
//在字符串中遇到\n可以将它作为换行符实现<h3>hello.<br />word</h3>
echo Yii::$app->formatter->asRelativeTime(1463632983).'<br/>';
// 3个月前 距离现在是几天前
echo Yii::$app->formatter->asDatetime(1463606983).'<br>';
// 2015-6-16 11:51:43 或者May 19, 2016 5:29:43 AM
echo Yii::$app->formatter->asDatetime('now').'<br>';
//Aug 20, 2016 6:47:39 PM
三.视图部件中的使用
<?= DetailView::widget([
'model' => $model,
'attributes' => [
'update_time:datetime',
[
'attribute' => 'update_time',
'format' => 'datetime',
'value'=> $model->update_time,
],
],
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
'update_time:datetime',
[
'attribute' => 'update_time',
'format' => 'datetime',
'value'=> $model->update_time,
],
],
]) ?>
在视图部件中,也可以重新定义format,未定义的话,默认是使用component中的
<?= DetailView::widget([
'model' => $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',
],
]) ?>
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'formatter' => ['class' => 'yii\i18n\Formatter','nullDisplay' => '','datetimeFormat' => 'Y-M-d H:i:s',],
'columns' => [
'update_time:datetime',
],
]) ?>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。