web-dev-qa-db-fra.com

Formatage de l'argent dans les modèles twig

Existe-t-il des filtres ou quelque chose comme ça dans twig moteur de modèle pour formater de l'argent ou des nombres?

62
umpirsky

Le filtre number_format Est inclus dans le noyau Twig depuis la fin de décembre 2011. Le commit correspondant est ici .

Utilisation: number_format(decimals, decimalSeparator, thousandSeparator)

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

En savoir plus à ce sujet dans le docs

100
Jrgns

La bibliothèque d'extensions Twig contient un certain nombre d'extensions utiles pour Twig. Avec la sortie de la version 1.2.0, un localizedcurrency filter a été ajouté à l'extension Intl. Comme son nom l'indique, ce filtre formatera un nombre basé sur les paramètres régionaux actuels. Pour ce faire, il utilise la classe NumberFormatter de PHP.

Usage

Ce filtre est très simple à utiliser. Le seul argument requis pour le filtre est le code de devise à 3 lettres ISO 4217 . Par exemple, pour afficher un montant de 27,99 euros, utilisez la ligne de code suivante:

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

Cela affichera des résultats différents selon les paramètres régionaux:

  • €27.99 si les paramètres régionaux sont définis sur en
  • 27,99 € si les paramètres régionaux sont définis sur fr
  • € 27,99 si les paramètres régionaux sont définis sur nl

Installation/définition des paramètres régionaux

Les instructions d'installation de l'extension Intl se trouvent dans cette réponse séparée .

34
Nic Wortel

Si vous utilisez une ancienne version de twig et que vous ne voulez installer aucune extension, vous pouvez utiliser le filtre de format comme ceci:

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

Pas très sympa, mais ça marche.

Fondamentalement, format fonctionne comme fonction sprintf de PHP

11
Jens
9
thrashr888