PHP setlocale(LC_MONETARY,'en_US')无法按预期工作

时间:2016-10-04 12:02:40

标签: php formatting

我执行以下代码:

setlocale(LC_MONETARY, 'en_US')  
echo money_format('%(!n', 1000) 

我希望获得1,000.00,但我得到1000.00

如果没有逗号,我该怎么办?

2 个答案:

答案 0 :(得分:3)

请在终端中尝试locale -a

就我而言,我发现我安装了en_US.utf8而不是en_US

setlocale(LC_MONETARY, 'en_US.utf8');

使用DOTENV之类的东西在运行代码的任何机器上加载正确的区域设置可能是个好主意:

setlocale(LC_MONETARY, env('LOCALE', 'en_US.utf8'));

包含.env条目的LOCALE文件:

LOCALE=en_US

答案 1 :(得分:0)

试试这个,使用 number-format

$num =  1000;
echo number_format($num,2,".",""); // 1000.00

<强> DEMO