Yii2:使用千位分隔符格式化货币

时间:2018-03-27 12:35:20

标签: yii2 separator phpword

我使用PhpOffice\PhpWord作为我的Yii2和Microsoft字2016.

值数据类型decimal(15,2)当我从我的项目字段值中显示microsoftwordfile.docx时显示10000.00,但我需要10,000.00 如何配置/编码它们以显示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']);
     }

in microsoftwordfile.docx

1 个答案:

答案 0 :(得分:1)

您可以使用yii\i18n\Formatter格式化货币,它会为您提供

  

thousandSeparator:显示为数千的角色   格式化时的分隔符(也称为分组分隔符)字符   号。

如果您使用 common\config\main.php ,请转到app-advanced;如果 app/config/main.php ,请添加app-basic关注components数组。

'formatter' => [
     'thousandSeparator' => ',',
     'currencyCode' => 'USD',
],

现在您可以格式化任何给定的数字,如下所示

Yii::$app->formatter->asCurrency(100.25);
//will output 
$100.25

Yii::$app->formatter->asCurrency(1000.25);
//will output
$1,000.25

Yii::$app->formatter->asCurrency(100000.25);
//will output 
$100,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']);
     }

希望这有帮助。