PHP setlocale(LC#u MONETARY,en#u US';)未按预期工作

PHP setlocale(LC#u MONETARY,en#u US';)未按预期工作,php,formatting,Php,Formatting,我执行以下代码: setlocale(LC_MONETARY, 'en_US') echo money_format('%(!n', 1000) 我希望得到1000.00,但是我得到了1000.00 没有逗号有什么不对吗?试试这个,用 $num = 1000; echo number_format($num,2,".",""); // 1000.00 请在终端中尝试locale-a 在我的例子中,我发现我安装了en_US.utf8,而没有安装en_US setlocale(LC_MO

我执行以下代码:

setlocale(LC_MONETARY, 'en_US')  
echo money_format('%(!n', 1000) 
我希望得到
1000.00
,但是我得到了
1000.00

没有逗号有什么不对吗?

试试这个,用

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

请在终端中尝试
locale-a

在我的例子中,我发现我安装了
en_US.utf8
,而没有安装
en_US

setlocale(LC_MONETARY, 'en_US.utf8');
在运行代码的任何计算机上,使用DOTENV之类的工具加载正确的区域设置可能是一个好主意:

setlocale(LC_MONETARY, env('LOCALE', 'en_US.utf8'));
使用包含
区域设置
条目的
.env
文件:

LOCALE=en_US

看一看:()我得到了
1000.00
referent@AHJeebon的链接您的演示中也没有逗号。但我认为,对于我的简单方法来说,这比上面的评论更可靠。当我使用“en_US.utf8”时,它确实添加了逗号,但也插入了美元。。。唉,我想我只需要像下面这样的数字格式。