开发者问题收集

在 Twig 模板中格式化货币

2011-05-07
82184

Twig 模板引擎中是否有任何过滤器或类似的东西来格式化金钱或数字?

3个回答

自 2011 年 12 月底以来, number_format 过滤器已包含在 Twig 核心中。相关提交位于 此处

用法: number_format(decimals, decimalSeparator, thousandsSeparator)

{{ total|number_format(2) }}
{{ total|number_format(0, '.') }}
{{ total|number_format(2, '.', ',') }}

文档 中阅读更多相关信息。

Jrgns
2012-02-01

Twig Extensions 库 包含许多有用的 Twig 扩展。随着 1.2.0 版本的发布,Intl 扩展中添加了一个 localizedcurrency 过滤器 。顾名思义,此过滤器将根据当前语言环境格式化数字。它使用 PHP 的 NumberFormatter 类来执行此操作。

使用

此过滤器非常易于使用。过滤器唯一必需的参数是 3 个字母的 ISO 4217 货币代码。例如,要显示 27.99 欧元的金额,请使用以下代码行:

{{ price|localizedcurrency('EUR') }}

这将根据语言环境显示不同的结果:

  • €27.99 如果语言环境设置为 en
  • 27,99 € 如果语言环境设置为 fr
  • € 27,99 如果语言环境设置为 nl

安装 / 设置语言环境

有关 Intl 扩展的安装说明,请参阅 此单独答案

Nic Wortel
2015-02-09

如果您使用的是旧版本的 twig,并且不想安装任何扩展,则可以使用如下格式过滤器:

{{ "%.2f"|format(total) }}

不是很好,但是可以工作。

基本上 format 的工作原理类似于 PHP 的 sprintf 函数

Jens
2012-06-30