Yii2:用千位分隔符格式化货币
Yii2: Format currency with thousands separator
我的 Yii2 和 Microsoft word 2016 使用 PhpOffice\PhpWord
。
值数据类型 decimal(15,2)
当我从我的项目字段中下载 microsoftwordfile.docx 时,值十进制显示 10000.00
但我需要 10,000.00
如何 config/coding 他们显示 10,000.00
此处myController.php
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
$model->amount,
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
您可以使用 yii\i18n\Formatter
格式化货币,它为您提供
thousandSeparator
: The character displayed as the thousands
separator (also called grouping separator) character when formatting a
number.
如果您使用的是 app-advanced
,请转到您的 common\config\main.php
,如果 app-basic
,请转到 app/config/main.php
nad 在 components
数组下添加以下内容。
'formatter' => [
'thousandSeparator' => ',',
'currencyCode' => 'USD',
],
现在您可以格式化任何给定的数字,如下所示
Yii::$app->formatter->asCurrency(100.25);
//will output
0.25
Yii::$app->formatter->asCurrency(1000.25);
//will output
,000.25
Yii::$app->formatter->asCurrency(100000.25);
//will output
0,000.25
你应该像下面这样改变你的功能
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
Yii::$app->formatter->asCurrency($model->amount),
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
希望对您有所帮助。
我的 Yii2 和 Microsoft word 2016 使用 PhpOffice\PhpWord
。
值数据类型 decimal(15,2)
当我从我的项目字段中下载 microsoftwordfile.docx 时,值十进制显示 10000.00
但我需要 10,000.00
如何 config/coding 他们显示 10,000.00
此处myController.php
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
$model->amount,
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
您可以使用 yii\i18n\Formatter
格式化货币,它为您提供
thousandSeparator
: The character displayed as the thousands separator (also called grouping separator) character when formatting a number.
如果您使用的是 app-advanced
,请转到您的 common\config\main.php
,如果 app-basic
,请转到 app/config/main.php
nad 在 components
数组下添加以下内容。
'formatter' => [
'thousandSeparator' => ',',
'currencyCode' => 'USD',
],
现在您可以格式化任何给定的数字,如下所示
Yii::$app->formatter->asCurrency(100.25);
//will output
0.25
Yii::$app->formatter->asCurrency(1000.25);
//will output
,000.25
Yii::$app->formatter->asCurrency(100000.25);
//will output
0,000.25
你应该像下面这样改变你的功能
public function actionWord($id)
{
Settings::setTempDir(Yii::getAlias('@webroot').'/temp/');
$templateProcessor = new TemplateProcessor(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
$model = Dataexample::findOne($id);
$templateProcessor->setValue(
[
'amount',
],
[
Yii::$app->formatter->asCurrency($model->amount),
]);
$templateProcessor->saveAs(Yii::getAlias('@webroot').'/path/to/microsoftwordfile.docx');
echo Html::a('download', Url::to(Yii::getAlias('@web').'/path/to/microsoftwordfile.docx'), ['class' => 'btn btn-danger']);
}
希望对您有所帮助。