首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:支持区域设置的数字格式

PHP:支持区域设置的数字格式
EN

Stack Overflow用户
提问于 2009-01-12 23:02:41
回答 6查看 27.9K关注 0票数 24

我想为我的网站访问者格式化数字3253454。

如果我使用内置的number_format函数,我会得到: 3,253,454,这对英国和美国来说很棒,但大多数其他国家使用的是3.253.454

我有很多国际访客。

有人能给我一个最佳实践的指点吗?

理想情况下,我希望获得浏览器的区域设置,并相应地格式化数字。在PHP中这是可能的吗?

EN

回答 6

Stack Overflow用户

发布于 2009-01-13 01:00:07

如果你正在部署一个本地化的网站,你会想要确保你的setlocale()。为了模仿yaauie的上述帖子,我会在初始化代码中添加类似以下代码片段的内容:

代码语言:javascript
复制
$locale = ( isset($_COOKIE['locale']) ) ? 
            $_COOKIE['locale'] : 
            $_SERVER['HTTP_ACCEPT_LANGUAGE'];
setlocale(LC_ALL, $locale);

然后我们修改上面的函数number_format_locale(),如下所示:

代码语言:javascript
复制
function number_format_locale($number,$decimals=2) {
    $locale = localeconv();
    return number_format($number,$decimals,
               $locale['decimal_point'],
               $locale['thousands_sep']);
 }

当然,这是在理想的情况下,根据您部署到的平台,以及您安装的语言环境文件的版本,您可能必须绕过一些不规范的地方进行编码。但是,设置语言环境将有助于处理金钱、数字和日期。

票数 23
EN

Stack Overflow用户

发布于 2009-01-12 23:06:15

代码语言:javascript
复制
string number_format (float $number, int $decimals, string $dec_point, string $thousands_sep)

请参阅php doku for number_format

另一个有用的链接可能是来自Zend Framework的Zend_Locale -它可以检测用户的语言,还可以帮助设置数字/货币格式

票数 6
EN

Stack Overflow用户

发布于 2017-03-17 16:29:29

同时,PHP提供了一个NumberFormatter类,它非常适合于此目的:

http://php.net/manual/de/class.numberformatter.php

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/437371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档