public function actionFormatter(){ return $this->render('formatter'); }
<?php $formatter = \Yii::$app->formatter; // output: January 1, 2016 echo $formatter->asDate('2019-10-01', 'long'),"<br>"; // output: 51.50% echo $formatter->asPercent(0.515, 2),"<br>"; // output: <a href = "mailto:[email protected]">[email protected]</a> echo $formatter->asEmail('[email protected]'),"<br>"; // output: Yes echo $formatter->asBoolean(true),"<br>"; // output: (Not set) echo $formatter->asDate(null),"<br>"; ?>
輸出格式 | 範例 |
---|---|
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 檢視。
<?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>"; ?>
另外還有四個日期格式的快捷方式:short, medium, long 和 full
<?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>"; ?>
輸出格式 | 範例 |
---|---|
integer | 51 |
decimal | 105.51 |
percent | 51% |
scientific | 1.050000E+2 |
currency | $105 |
size | 105 bytes |
shortSize | 105 B |
<?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>"; ?>
text ? 值是HTML編碼
raw ? 值是被輸出的
paragraphs ? 值被格式化為HTML文字段落,並包裹成p標籤
ntext ? 值被格式化為一個HTML純文字換行,新行的地方被轉換成換行符
html ? 值是使用 HtmlPurifier 純化避免 XSS 攻擊
image ? 值被格式化為影象標記
boolean ? 值被格式化為一個布林值
url ? 值被格式化為一個連結
email ? 值被格式化為一個 mailto 連結
<?php Yii::$app->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'); ?>