有没有办法转换文本输入如何在Form构造方法或ViewHelper中以正确的区域设置编号格式显示其值中的货币?
e.g。
我已经能够在控制器,模型和视图中进行转换,但是没有遇到过如何做到这一点。
由于
Aborgrove
答案 0 :(得分:4)
您有Zend\I18n
组件,它可以运行格式化程序来格式化数字。您可以将NumberFormat
用于一般数字,CurrencyFormat
用于特定货币。
这些格式化程序位于Zend\I18n\View\Helper
域中,但实际上并不依赖于视图。因此,您可以随意使用它们:
use Zend\I18n\View\Helper\CurrencyFormat;
$formatter = new CurrencyFormat;
$formatter->setLocale('en-US');
$currency = $formatter(1234.56, 'EUR'); // "€1,234.56"
$currency = $formatter(1234.56, 'USD'); // "$1,234.56"
$formatter->setLocale('nl-NL');
$currency = $formatter(1234.56, 'EUR'); // "€ 1.234,56"
你必须要注意两件事:
Locale::setDefault()
设置默认区域设置)。如果您只想格式化没有任何货币代码的数字,则可以使用Zend\I18n\View\Helper\NumberFormat
。有关格式的详细信息,请参见manual。