css Smarty上的价格编号格式

7fhtutme  于 2023-04-08  发布在  其他
关注(0)|答案(3)|浏览(94)

我认为这是一个相当愚蠢的问题,我研究了如何格式化数字转换为价格格式。我使用smarty作为模板系统。是否有可能通过smarty或其他方法来格式化价格?
我需要将类型编号1000000转换为$1.000.000
如果没有smarty的输出格式,还有什么其他方法?
谢谢

t3psigkw

t3psigkw1#

使用PHP的money format function
在smarty,这将是{$myNumber|money_format:'%i'}

hwamh0ep

hwamh0ep2#

使用插件为smarty 3.x
http://www.smarty.net/docs/en/api.register.plugin.tpl
代码示例:

$smarty = new Smarty;
$smarty->registerPlugin("modifier", "number_format", "number_format");

在smarty tpl文件中,你可以这样编写html:

...
<td style="text-align:right;border: 1px solid black;border-collapse: collapse;">{$upah|number_format:2:",":"."}</td>
...

注:“,”为十进制符号,“.”为千进制符号,可以互换。

nr9pn0ug

nr9pn0ug3#

强烈建议使用国际化扩展类NumberFormatter
PHP函数手册:https://www.php.net/manual/en/numberformatter.formatcurrency.php
PHP手册类:https://www.php.net/manual/en/class.numberformatter.php
PHP扩展手册:https://www.php.net/manual/en/book.intl.php
工作做得很完美。
PHP代码示例:

$smarty = new Smarty();
$smarty->registerPlugin('modifier', 'format_currency', [
            NumberFormatter::create('en_US', NumberFormatter::CURRENCY),
            'formatCurrency'
        ]);

Smarty模板:

{9.1|format_currency:USD} {100.19|format_currency:EUR}

输出

$9.10 €100.19

您可以使用默认区域设置locale_get_default()来代替'en_US'
PHP manual:PHP

相关问题