Gibt es Filter oder ähnliches in der Zweigvorlagen-Engine, um Geld oder Zahlen zu formatieren?
Antworten:
Der number_format
Filter ist seit Ende Dezember 2011 im Twig-Kern enthalten. Das entsprechende Commit finden Sie hier .
Verwendung: number_format(decimals, decimalSeparator, thousandSeparator)
{{ total|number_format(2) }}
{{ total|number_format(0, '.') }}
{{ total|number_format(2, '.', ',') }}
Lesen Sie mehr darüber in den Dokumenten
{{ 100*done/total | number_format(2) }}
und es dauerte gut 30 Minuten, um herauszufinden, warum das Ergebnis falsch war. Du musst schreiben {{ (100*done/total) | number_format(2) }}
.
total
auf dem Zweig Filter
Die Twig Extensions-Bibliothek enthält eine Reihe nützlicher Erweiterungen für Twig. Mit der Veröffentlichung von Version 1.2.0 wurde der Intl-Erweiterung ein localizedcurrency
Filter hinzugefügt. Wie der Name schon sagt, formatiert dieser Filter eine Nummer basierend auf dem aktuellen Gebietsschema. Dazu wird die PHP- NumberFormatter
Klasse verwendet.
Dieser Filter ist sehr einfach zu bedienen. Das einzige erforderliche Argument für den Filter ist der dreistellige Währungscode ISO 4217 . Verwenden Sie beispielsweise die folgende Codezeile, um einen Betrag von 27,99 Euro anzuzeigen:
{{ price|localizedcurrency('EUR') }}
Dies zeigt je nach Gebietsschema unterschiedliche Ergebnisse an:
€27.99
wenn das Gebietsschema auf eingestellt ist en
27,99 €
wenn das Gebietsschema auf eingestellt ist fr
€ 27,99
wenn das Gebietsschema auf eingestellt ist nl
Installationsanweisungen für die Intl-Erweiterung finden Sie in dieser separaten Antwort .
Thousand Separator
in deaktivieren localizednumber
??
NumberFormatter
, aber Sie müssen eine benutzerdefinierte Twig-Erweiterung schreiben, da der localizedcurrency
Filter dies nicht unterstützt. Ich denke, dies verdient jedoch eine eigene Frage zum Stapelüberlauf. Wenn Sie die Frage posten und mir den Link senden, werde ich dort meine Antwort posten.
Wenn Sie eine ältere Version von twig verwenden und keine Erweiterungen installieren möchten, können Sie den Formatfilter wie folgt verwenden:
{{ "%.2f"|format(total) }}
Nicht sehr schön, aber es funktioniert.
Funktioniert grundsätzlich format
wie die sprintf
Funktion von PHP
format
funktioniert wie die PHP- sprintf
Funktion und kann die Währungsformatierung durchführen .
Verwenden Sie die format_currency
Ab Version 2.12 wurde format_currency
Filter hinzugefügt. Weitere Informationen finden Sie in der offiziellen Dokumentation unter https://twig.symfony.com/doc/2.x/filters/format_currency.html
format_currency
Filter ist ziemlich schlecht, da es üblich ist, Geld als ganze Zahlen zu speichern, und der Filter zeigt die ganze ganze Zahl ...
localizedcurrency
Filter zur Verfügung, mit dem Geld in Twig basierend auf dem Gebietsschema formatiert werden kann. Weitere Informationen finden Sie in meiner Antwort .