【问题标题】:PHP money_format for EURO欧元的 PHP money_format
【发布时间】:2013-05-13 10:31:18
【问题描述】:

我们可以使用以下代码获取 $ 标记和格式化货币。

setlocale(LC_MONETARY, 'en_US.UTF-8');
$amount = money_format('%(#1n', $amount);

如何从 php money_format 中获取欧元符号?

【问题讨论】:

  • 只需设置一个区域设置,如 nl_NL 引用一个实际使用欧元的国家/地区?
  • 选择一个使用欧元而不是美元的地区可能是一个开始
  • 我相信使用欧元货币地区只会显示,例如“1,234 EUR”。

标签: php money-format


【解决方案1】:

我认为这会起作用

setlocale(LC_MONETARY, 'nl_NL.UTF-8');
$amount = money_format('%(#1n', 20);
echo $amount;

警告:-

从 PHP 7.4.0 开始,该函数已被弃用,并从 PHP 8.0.0 开始删除。强烈建议不要依赖此函数。

【讨论】:

  • 但是这段代码对我不起作用。因为我没有像 nl_NL.UTF-8 这样的本地。感谢您的回答。
  • 是的,我知道。问题是我的服务器。它没有任何本地命名的 nll_NL.UTF-8
  • 这会在我的系统上打印“Eu”而不是“€”
  • 工作正常,我知道线程有点旧,但你能解释一下 $(#1n 大致做了什么吗?
  • @D.Schalla 这些是转换字符。您可以在此处找到示例说明in1.php.net/manual/en/function.money-format.php
【解决方案2】:

使用这个

setlocale(LC_MONETARY, 'nl_NL');
$amount = money_format('%(#1n', $amount);

【讨论】:

    【解决方案3】:

    一个相当老的线程,但如果有些谷歌在这里 这甚至适用于本地 MAMP

    setlocale(LC_MONETARY, 'de_DE');
    echo money_format('€ %!n', 1.620.56);
    
    // € 1.620.56 
    

    【讨论】:

      【解决方案4】:
      $price = 880000;
      echo number_format($price, 2, ',', '.');
      

      输入 => 880000

      输出 => 880.000,00

      【讨论】:

        【解决方案5】:

        你可以使用 HTML 实体

        "&euro";
        

        直接在你的代码中

        $amount = money_format('%(#1n', $amount) .htmlentities('€');
        

        编辑

        或者您可以使用 ! 标志 %(#!1n' 所以你的代码看起来像

        $amount = money_format('%(#!1n', $amount) .htmlentities('€');
        

        你可以看下面的帖子

        希望这会有所帮助

        【讨论】:

          【解决方案6】:

          最后一个意大利语言环境对我有用。

          $amount = '1600.00';
          setlocale(LC_MONETARY, 'it_IT.UTF-8');
          $amount = money_format('%.2n', $amount);
          echo str_replace('Eu','€',$amount);
          

          【讨论】:

            【解决方案7】:

            这是一个旧线程,但我觉得值得分享一个相关的解决方案,因为最佳答案并没有提供实际的解决方案。我在搜索西班牙语 LC_monetary 时发现了这个,所以如果你像我一样来到这里,你就会知道答案。

            我使用以下包装在一个函数中的优点是它可以很好地处理零(see example in calculations)。我在我的计算器中使用它来进行更流畅的会计布局。此示例是西班牙,但您可以使用您喜欢的任何欧元区:

            setlocale(LC_MONETARY, "en_ES"); 
            function C_S($iv) { 
                if(in_array($iv, array(' ','',0)) ){return'<i>&euro;</i>0.00';}
                else{return str_replace('EU','<i>&euro;</i>', money_format("%i", $iv));} 
            } 
            

            斜体不是必需的,我将它们与 css 一起使用以对齐财务样式报告。再次,在这里获取信息。

            使用:

            echo C_S(1234);
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2011-02-26
              • 1970-01-01
              • 2013-02-26
              • 1970-01-01
              相关资源
              最近更新 更多