Yii - Formatage

Pour afficher les données dans un format lisible, vous pouvez utiliser le formatter composant d'application.

Step1 - Ajouter le actionFormatter méthode à la SiteController.

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

Dans le code ci-dessus, nous rendons simplement le formatter vue.

Step 2 - Maintenant, créez un formatter.php afficher le fichier dans le views/site folder.

<?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:[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>";
?>

Step 3 - Aller à http://localhost:8080/index.php?r=site/formatter, vous verrez la sortie suivante.

le formatter Le composant prend en charge les formats suivants liés à la date et à l'heure -

Format de sortie Exemple
Date 01 janvier 2016
temps 16:06
datetime 1 janvier 2016 16:06
horodatage 1512609983
relativeTime Il ya 1 heure
durée 5 minutes

Step 4 - Modifier le formatter voir de cette façon.

<?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>";
?>

Step 5 - Type http://localhost:8080/index.php?r=site/formatter dans la barre d'adresse de votre navigateur Web, vous verrez la sortie suivante.

Formats de date

Il existe également quatre raccourcis de format de date: short, medium, long, and full.

Step 1 - Modifier le formatter afficher le fichier de cette façon.

<?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>";
?>

Step 2 - Si vous allez dans le navigateur Web et tapez http://localhost:8080/index.php?r=site/formatter, vous verrez la sortie suivante.

Formats de nombres

le formatter Le composant prend en charge les formats suivants liés aux nombres -

Format de sortie Exemple
entier 51
décimal 105,51
pour cent 51%
scientifique 1,050000E + 2
devise 105 $
Taille 105 octets
shortSize 105 B

Step 1 - Modifier le formatter voir de cette façon.

<?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>";
?>

Step 2 - Aller à http://localhost:8080/index.php?r=site/formatter, vous verrez la sortie suivante.

Autres formats

Yii prend également en charge d'autres formats -

  • text - La valeur est codée en HTML.

  • raw - La valeur est sortie telle quelle.

  • paragraphs- La valeur est formatée sous forme de paragraphes de texte HTML enveloppés dans la balise p .

  • ntext - La valeur est formatée sous la forme d'un texte HTML brut où les retours à la ligne sont convertis en sauts de ligne.

  • html - La valeur est purifiée à l'aide de HtmlPurifier pour éviter les attaques XSS.

  • image - La valeur est formatée en tant que balise d'image.

  • boolean - La valeur est formatée sous la forme d'un booléen.

  • url - La valeur est formatée sous forme de lien.

  • email - La valeur est formatée sous forme de lien mailto.

Le formateur peut utiliser les paramètres régionaux actuellement actifs pour déterminer comment mettre en forme une valeur pour un pays spécifique.

L'exemple suivant montre comment formater la date pour différents paramètres régionaux.

<?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');
?>