大家好,感谢您的阅读。 我想知道如何将一个数字格式化为一种货币,或者只需在最后附上€。我正在yii框架的管理页面上使用gridview。 我有这个作为例如如何在GridView中将列格式化为货币(yii)?
'columns'=>array(
'title',
array(
'name'=>'cost',
'value'=>'$data->cost',
)
大家好,感谢您的阅读。 我想知道如何将一个数字格式化为一种货币,或者只需在最后附上€。我正在yii框架的管理页面上使用gridview。 我有这个作为例如如何在GridView中将列格式化为货币(yii)?
'columns'=>array(
'title',
array(
'name'=>'cost',
'value'=>'$data->cost',
)
的Yii的方式是使用Yii's existing currency formatter,像这样:
array(
'name'=>'cost',
'value'=>'Yii::app()->numberFormatter->formatCurrency($data->cost, "EUR")',
)
您可以使用PHP的功能和价值的一些静态文本。例如:
'columns'=>array(
'title',
array(
'name'=>'cost',
'value'=>'$data->cost . " €" ',
)
如果你需要使用这种格式,甚至更多,我建议编写自定义功能控制器或自定义货币功能延伸CFormatter并用它作为价值。请阅读下面的yii主页手册。 http://www.yiiframework.com/wiki/278/cgridview-render-customized-complex-datacolumns/
我使用php的money_format()得到正确的格式。
它看起来是这样的:
'columns'=>array(
'title',
array(
'name'=>'cost',
'value'=>'money_format("%!i", $data->cost)',
)
您可以通过设置本地化之前调用money_format(指定货币),像这样:
setlocale(LC_MONETARY, 'ja_JP');
Ja_JP表示对日元,用于只是一个例子。 More here.
我把它在我的SiteController。公共函数init(){setlocale(LC_MONETARY,'ja_JP'); }但只要在money_format()之前执行,就可以在任何地方调用它。就我个人而言,当你在配置中设置另一种语言时,我认为这应该由YII设置。 – ippi 2013-05-13 09:56:07
谢谢,它的工作原理及其正确的解决方案 – Gunnit 2013-05-13 13:18:06
此解决方案在服务器上工作,但如果您在本地主机上使用Windows,则会收到“致命错误:调用未定义函数money_format()”。请参阅例如:http://stackoverflow.com/questions/6369887/alternative-to-money-format-function-in-php-on-windows-platform – 2016-03-04 13:11:46
yhea这是我正在寻找,这是yii的方式 – Gunnit 2013-05-13 13:18:42