我想为我的网站访问者格式化数字3253454。
如果我使用内置的number_format函数,我会得到: 3,253,454,这对英国和美国来说很棒,但大多数其他国家使用的是3.253.454
我有很多国际访客。
有人能给我一个最佳实践的指点吗?
理想情况下,我希望获得浏览器的区域设置,并相应地格式化数字。在PHP中这是可能的吗?
发布于 2009-01-13 01:00:07
如果你正在部署一个本地化的网站,你会想要确保你的setlocale()。为了模仿yaauie的上述帖子,我会在初始化代码中添加类似以下代码片段的内容:
$locale = ( isset($_COOKIE['locale']) ) ?
$_COOKIE['locale'] :
$_SERVER['HTTP_ACCEPT_LANGUAGE'];
setlocale(LC_ALL, $locale);
然后我们修改上面的函数number_format_locale()
,如下所示:
function number_format_locale($number,$decimals=2) {
$locale = localeconv();
return number_format($number,$decimals,
$locale['decimal_point'],
$locale['thousands_sep']);
}
当然,这是在理想的情况下,根据您部署到的平台,以及您安装的语言环境文件的版本,您可能必须绕过一些不规范的地方进行编码。但是,设置语言环境将有助于处理金钱、数字和日期。
发布于 2009-01-12 23:06:15
string number_format (float $number, int $decimals, string $dec_point, string $thousands_sep)
另一个有用的链接可能是来自Zend Framework的Zend_Locale -它可以检测用户的语言,还可以帮助设置数字/货币格式
发布于 2017-03-17 16:29:29
同时,PHP提供了一个NumberFormatter类,它非常适合于此目的:
https://stackoverflow.com/questions/437371
复制相似问题