是否有相当于 JavaScript 函数 toLocaleString() 的 PHP 函数

Roh*_*ali 5 javascript php

我正在寻找一个预先构建的数字格式化函数,并遇到了这个 JS 函数toLocaleString()。这个功能正是我想要它做的。

例如,我有一个要格式化的数字,比如说1234567890.123. 我希望这个数字被格式化为1,23,45,67,890.123& 1,234,567,890.123

使用 JS 函数,我这样做并获得了所需的输出

var number = 1234567890.123;
number.toLocaleString('hi-IN'); //1,23,45,67,890.123
number.toLocaleString('en'); //1,234,567,890.123
Run Code Online (Sandbox Code Playgroud)

但是,我想知道是否有内置方法可以使用 PHP 执行此操作。

注意:money_format() 不是我要找的,我只是想知道 PHP 中是否也存在这样的函数。如果没有,没问题,我将不得不编写一个自定义函数。

Mik*_*ton 3

PHP 确实允许数字格式化,但没有可以与 Javascript 的 toLocaleString() 完全一样的函数。

这里提供了最好的等价物:How to displaycurrency in Indian Numbering Format in PHP

PHP 的 NumberFormatter 可用于格式化小数。JavaScript 实现在浏览器客户端设置区域设置值,然后输出结果。

PHP 有类似的方法来设置区域设置值,但在服务器上执行。这可能会导致意想不到的后果。

警告区域设置信息是按进程维护的,而不是按线程维护的。如果您在 Windows 上的 IIS、HHVM 或 Apache 等多线程服务器 API 上运行 PHP,则在脚本运行时可能会遇到区域设置突然发生变化的情况,尽管脚本本身从未调用过 setlocale()。发生这种情况是因为其他脚本同时在同一进程的不同线程中运行,使用 setlocale() 更改了进程范围的区域设置。” 来源: http: //php.net/manual/en/function.setlocale.php