大家好,感謝您的閱讀。 我想知道如何將一個數字格式化爲一種貨幣,或者只需在最後附上€。我正在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