Yii格式化


要以可读格式显示数据,可以使用 格式化 程序组件。

第一步 -添加 actionFormatter 方法将 SiteController

public function actionFormatter(){
   return $this->render('formatter');
}

在上面的代码中,我们只是渲染 格式化 视图。

第2步 - 现在, 在 views / site文件夹 内创建一个 formatter.php 视图文件。 **

<? php
   $formatter = \Yii::$app->formatter;
   // output: January 1, 2016
   echo $formatter->asDate('2016-01-01', 'long'),"<br>";
   // output: 51.50%
   echo $formatter->asPercent(0.515, 2),"<br>";
   // output: <a href = "mailto:test@test.com">test@test.com</a>
   echo $formatter->asEmail('test@test.com'),"<br>";
   // output: Yes
   echo $formatter->asBoolean(true),"<br>";
   // output: (Not set)
   echo $formatter->asDate(null),"<br>";
?>

第3步 - 转到 http:// localhost:8080 / index.php?r =站点/格式化程序 ,您将看到以下输出。

查看文件

格式化 组件支持的日期和时间有关的下列格式

输出格式
日期 2016年1月1日
时间 16:06
约会时间 2016年1月1日16:06
时间戳 1512609983
RELATIVETIME 1小时前
持续时间 5分钟

第4步 - 以 这种方式修改 格式化程序 视图。

<?php
   $formatter = \Yii::$app->formatter;
   echo $formatter->asDate(date('Y-m-d'), 'long'),"<br>";
   echo $formatter->asTime(date("Y-m-d")),"<br>";
   echo $formatter->asDatetime(date("Y-m-d")),"<br>";

   echo $formatter->asTimestamp(date("Y-m-d")),"<br>";
   echo $formatter->asRelativeTime(date("Y-m-d")),"<br>";
?>

第5步 - 在Web浏览器的地址栏中键入 http:// localhost:8080 / index.php?r =站点/格式化程序 ,您将看到以下输出。

格式化程序输出

日期格式

还有四种日期格式快捷键: 短,中,长和满

第1步 - 以 这种方式修改 格式器 视图文件。

<?php
   $formatter = \Yii::$app->formatter;
   echo $formatter->asDate(date('Y-m-d'), 'short'),"<br>";
   echo $formatter->asDate(date('Y-m-d'), 'medium'),"<br>";
   echo $formatter->asDate(date('Y-m-d'), 'long'),"<br>";
   echo $formatter->asDate(date('Y-m-d'), 'full'),"<br>";
?>

第2步 - 如果您转到Web浏览器并键入 http:// localhost:8080 / index.php?r = site / formatter ,您将看到以下输出。

数据格式输出

数字格式

格式化 组件支持与数字有关的下列格式

输出格式
整数 51
十进制 105.51
百分 51%
科学 1.050000E + 2
货币 $ 105
尺寸 105字节
shortSize 105 B

第1步 - 以 这种方式修改 格式化程序 视图。

<?php
   $formatter = \Yii::$app->formatter;
   echo Yii::$app->formatter->asInteger(105),"<br>";
   echo Yii::$app->formatter->asDecimal(105.41),"<br>";
   echo Yii::$app->formatter->asPercent(0.51),"<br>";
   echo Yii::$app->formatter->asScientific(105),"<br>";
   echo Yii::$app->formatter->asCurrency(105, "$"),"<br>";
   echo Yii::$app->formatter->asSize(105),"<br>";
   echo Yii::$app->formatter->asShortSize(105),"<br>";
?>

第2步 - 转到 http:// localhost:8080 / index.php?r =站点/格式化程序 ,您将看到以下输出。

数字格式输出

其他格式

Yii也支持其他格式 -

  • 文本 - 该值是HTML编码的。

  • 原始 - 数值按原样输出。

  • 段落 - 该值被格式化为包含在 p 标签中的HTML文本段落。

  • ntext - 该值被格式化为HTML纯文本,其中换行符被转换为换行符。

  • html - 使用HtmlPurifier净化值以避免XSS攻击。

  • 图像 - 该值被格式化为图像标签。

  • 布尔值 - 该值被格式化为布尔值。

  • url - 该值被格式化为链接。

  • 电子邮件 - 该值被格式化为 邮件 链接。

格式化程序可以使用当前活动的区域设置来确定如何格式化特定国家/地区的值。

以下示例显示如何为不同语言环境设置日期格式。

<?php
   Yii::$app->formatter->locale = 'ru-RU';
   echo Yii::$app->formatter->asDate('2016-01-01'); // output: 1 января 2016 г.
   Yii::$app->formatter->locale = 'de-DE';
   // output: 1. Januar 2016
   echo Yii::$app->formatter->asDate('2016-01-01');
   Yii::$app->formatter->locale = 'en-US';
   // output: January 1, 2016
   echo Yii::$app->formatter->asDate('2016-01-01');
?>