Yii格式化

要以可讀格式來顯示數據,可以使用 格式化(formatter)應用程序組件。

第1步 - 將 actionFormatter() 方法添加到 SiteController。

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

在上面的代碼中,我們只呈現格式化視圖。

第2步 - 現在,在 views/site 文件夾內創建 formatter.php 視圖文件。

formatter; // output: January 1, 2016 echo $formatter->asDate('2019-10-01', 'long'),"
"; // output: 51.50% echo $formatter->asPercent(0.515, 2),"
"; // output: [email protected] echo $formatter->asEmail('[email protected]'),"
"; // output: Yes echo $formatter->asBoolean(true),"
"; // output: (Not set) echo $formatter->asDate(null),"
"; ?>

第3步 - 訪問URL: http://localhost:8080/index.php?r=site/formatter, 就會看到下面的輸出:
Yii格式化

格式化組件支持日期和時間相關的格式如下 - 

輸出格式

示例

date

January 01, 2016

time

16:06

datetime

January 01, 2016 16:06

timestamp

1512609983

relativeTime

1 hour ago

duration

5 minutes

第4步 - 使用以下這種方式修改 formatter.php  視圖。

formatter; echo $formatter->asDate(date('Y-m-d'), 'long'),"
"; echo $formatter->asTime(date("Y-m-d")),"
"; echo $formatter->asDatetime(date("Y-m-d")),"
"; echo $formatter->asTimestamp(date("Y-m-d")),"
"; echo $formatter->asRelativeTime(date("Y-m-d")),"
"; ?>

第5步 - 在Web瀏覽器訪問: http://localhost:8080/index.php?r=site/formatter ,就會看到下面的輸出。
Yii格式化

日期格式

另外還有四個日期格式的快捷方式:short, medium, long 和 full 

第1步 - 使用以下這種方式修改 formatter 視圖文件。

formatter; echo $formatter->asDate(date('Y-m-d'), 'short'),"
"; echo $formatter->asDate(date('Y-m-d'), 'medium'),"
"; echo $formatter->asDate(date('Y-m-d'), 'long'),"
"; echo $formatter->asDate(date('Y-m-d'), 'full'),"
"; ?>

第2步 - 打開Web瀏覽器輸入: http://localhost:8080/index.php?r=site/formatter,,將會看到下面的輸出。
Yii格式化

數字格式


格式化組件支持數字有關下列格式-

輸出格式

示例

integer

51

decimal

105.51

percent

51%

scientific

1.050000E+2

currency

$105

size

105 bytes

shortSize

105 B

第1步 - 使用以下這種方式修改 formatter 視圖。

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

第2步 - 訪問  http://localhost:8080/index.php?r=site/formatter, 會看到下面的輸出結果:
Yii格式化

其他格式


Yii也可以支持其他格式 -

  • text − 值是HTML編碼

  • raw − 值是被輸出的

  • paragraphs − 值被格式化爲HTML文本段落,幷包裹成p標籤

  • ntext − 值被格式化爲一個HTML純文本換行,新行的地方被轉換成換行符

  • html − 值是使用 HtmlPurifier 純化避免 XSS 攻擊

  • image − 值被格式化爲圖像標記

  • boolean − 值被格式化爲一個布爾值

  • url − 值被格式化爲一個鏈接

  • email − 值被格式化爲一個 mailto 鏈接

格式化可以使用當前活動的語言環境來確定如何格式化指定國家格式的值。

下面的例子說明如何在不同的語言環境格式化日期。

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