Gibt es Filter oder ähnliches in twig template engine um Geld oder Zahlen zu formatieren?
Der Filter number_format
Ist seit Ende Dezember 2011 im Kern von Twig enthalten. Das entsprechende Commit ist 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 docs
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 Zahl basierend auf dem aktuellen Gebietsschema. Dazu wird die Klasse NumberFormatter
von PHP verwendet.
Dieser Filter ist sehr einfach zu bedienen. Das einzige erforderliche Argument für den Filter ist der 3-stellige ISO 4217 Währungscode. 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 en
gesetzt ist27,99 €
wenn das Gebietsschema auf fr
gesetzt ist€ 27,99
wenn das Gebietsschema auf nl
gesetzt istInstallationsanweisungen für die Intl-Erweiterung finden Sie in diese separate Antwort .
Wenn Sie eine ältere Version von twig verwenden und keine Erweiterungen installieren möchten, können Sie den Formatfilter folgendermaßen verwenden:
{{ "%.2f"|format(total) }}
Nicht sehr schön, aber es funktioniert.
Grundsätzlich funktioniert format
wie PHPs Funktion sprintf
Hier ist ein Filter, der number_format()
ausführt:
https://github.com/falmp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Number.php