如何通过货币代码获取货币符号?


22

我可以从订单对象获取货币代码。如何使用它来导出货币符号?任何建议将不胜感激。


1
如果您发现以下答案之一有用,请将其标记为正确答案。
Fabian Blechschmidt 2013年

Answers:



27

存储货币代码,例如 美元

$currency_code = Mage::app()->getStore()->getCurrentCurrencyCode();

存储货币符号,例如 $

$currency_symbol = Mage::app()->getLocale()->currency( $currency_code )->getSymbol();

商店货币名称,例如 美元

$currency_name = Mage::app()->getLocale()->currency( $currency_code)->getName();

这在1.7版中不起作用
Gilles Lesire'Nov

6

以下工作。

// store currency symbol eg. $ 
$currency_symbol = Mage::app()->getLocale()->currency( $currency_code )->getSymbol();

3

尝试:

$currencyCode   = '';
$currency       = $order->getOrderCurrency(); //$order object
if (is_object($currency)) {
    $currencyCode = $currency->getCurrencyCode();
}
$currencySymbol = Mage::app()->getLocale()->currency($currencyCode)->getSymbol();
var_dump($currencySymbol);

Mage :: app()-> getLocale()将返回当前的语言环境对象,不是吗?我想要的是获取给定货币代码的货币符号,而与语言环境无关。
Sukeshini

请检查一次代码。它应该工作。
MagePsycho

如果您在语言环境中设置了其他符号,则它将无法正常工作。它仍然会返回您的默认货币符号。
Shathish

@MagePsycho:已检查。它不起作用。
Sukeshini

您可以粘贴代码吗?我刚刚测试过,对我来说效果很好。
MagePsycho

2

使用任何给定的货币代码,您可以使用Zend_Locale得出符号:

$curr = new Zend_Currency('en_US');
echo $curr->getSymbol();

根据您的解决方案,我们必须通过语言环境来创建Zend_Currency对象,对吗?我所期望的是,有一种方法可以获取货币符号,而与语言环境无关?我的意思是,仅通过传递货币代码就可以在magento CE 1.7中获得货币符号吗?
Sukeshini

您可以将任何语言环境传递给zend货币
philwinkle 2013年


我的问题背景是这样的。我有几个商店,有几个网站。我正在创建一个在项目外部运行的php文件,无论商店或其他任何因素,都可以获取所有订单集合。在这种情况下,如果我获得订单的所有详细信息,则可以获取订单总金额和货币代码作为单独的值。我想获取货币符号并在我的php文件中显示订单总额为完整金额。因此,我无法放置所需的任何语言环境。提前致谢。
Sukeshini

2

只需传递变量..中的值即可返回当前货币格式的价格

$Formatted_Price = Converted Price with Currency 
$Variable_Price  = Your Variable value
$Formatted_Price= Mage::helper('core')->currency($Variable_Price, true, false);
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.