Yii - Formateo
Para mostrar datos en un formato legible, puede utilizar el formatter componente de la aplicación.
Step1 - Agregue el actionFormatter método para el SiteController.
public function actionFormatter(){
return $this->render('formatter');
}
En el código anterior, simplemente renderizamos el formatter ver.
Step 2 - Ahora, crea un formatter.php ver archivo dentro del 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 - Ir a http://localhost:8080/index.php?r=site/formatter, verá el siguiente resultado.
los formatter El componente admite los siguientes formatos relacionados con la fecha y la hora:
Formato de salida | Ejemplo |
---|---|
fecha | 01 de enero de 2016 |
hora | 16:06 |
fecha y hora | 01 de enero de 2016 16:06 |
marca de tiempo | 1512609983 |
relativamenteTime | 1 hora antes |
duración | 5 minutos |
Step 4 - Modificar el formatter ver de esta manera.
<?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 - Tipo http://localhost:8080/index.php?r=site/formatter en la barra de direcciones de su navegador web, verá el siguiente resultado.
Formatos de fecha
También hay cuatro atajos de formato de fecha: short, medium, long, and full.
Step 1 - Modificar el formatter ver el archivo de esta manera.
<?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 va al navegador web y escribe http://localhost:8080/index.php?r=site/formatter, verá el siguiente resultado.
Formatos de números
los formatter El componente admite los siguientes formatos relacionados con números:
Formato de salida | Ejemplo |
---|---|
entero | 51 |
decimal | 105,51 |
por ciento | 51% |
científico | 1.050000E + 2 |
moneda | $ 105 |
Talla | 105 bytes |
shortSize | 105 B |
Step 1 - Modificar el formatter ver de esta manera.
<?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 - Ir a http://localhost:8080/index.php?r=site/formatter, verá el siguiente resultado.
Otros formatos
Yii también admite otros formatos:
text - El valor está codificado en HTML.
raw - El valor se emite como está.
paragraphs- El valor tiene el formato de párrafos de texto HTML envueltos en la etiqueta p .
ntext - El valor tiene el formato de texto sin formato HTML donde las nuevas líneas se convierten en saltos de línea.
html - El valor se purifica mediante HtmlPurifier para evitar ataques XSS.
image - El valor tiene el formato de una etiqueta de imagen.
boolean - El valor tiene el formato booleano.
url - El valor tiene el formato de enlace.
email - El valor tiene el formato de enlace de correo electrónico.
El formateador puede utilizar la configuración regional actualmente activa para determinar cómo formatear un valor para un país específico.
El siguiente ejemplo muestra cómo formatear la fecha para diferentes configuraciones regionales.
<?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');
?>