PHP money_format无效

时间:2014-08-20 07:21:10

标签: php

我在TurnkeyLinux上使用Laravel 4并尝试让money_format以本地化方式显示货币。

money_format('%.2n', 1222002.09)返回1222002.09。

在app / strart / global.php中我有App::setLocale(Session::get('locale', 'en'));,这会使用Laravel的语言文件改变语言,但对货币没有影响。

我发现localeconv();输出了一个几乎为空的数组(只设置了小数点),使用setLocale(LC_ALL, 'en_GB', 'en_GB');没有效果。

我使用的是PHP 5.4.4和Debian 3.2.57。

1 个答案:

答案 0 :(得分:7)

知道了!感谢Dmitry Bezik指出我正确的方向。

locale -a返回:

  • C
  • C.UTF-8
  • POSIX

缺少GB(或US)语言环境促使我进行另一次搜索 我this page

基本上我没有安装任何语言环境,所以我按照说明操作并通过执行以下操作安装了GB语言环境:

  1. 使用WinSCP打开/etc/locale.gen并向下滚动已注释掉的语言环境列表,直到找到en_GB.UTF-8 UTF-8并删除前导“#”,(如果您的文件为空,只需添加一个条目即可工作)。
  2. 以root身份运行/usr/sbin/locale-gen,这使系统“生成语言环境”(只花了一秒钟)。
  3. setLocale(LC_ALL, 'en_GB.utf8', 'en_GB');添加到我的刀片模板并刷新。
  4. 瞧!我现在得到£1,222,002.09 然后,我在设置语言后将setLocale代码移动到app / start / global.php中,以便在每次请求时运行。