Gibt es Filter oder ähnliches in der Zweigvorlagen-Engine, um Geld oder Zahlen zu formatieren?
Antworten:
Der number_formatFilter 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) }}.
totalauf 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 localizedcurrencyFilter hinzugefügt. Wie der Name schon sagt, formatiert dieser Filter eine Nummer basierend auf dem aktuellen Gebietsschema. Dazu wird die PHP- NumberFormatterKlasse 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 en27,99 € wenn das Gebietsschema auf eingestellt ist fr€ 27,99 wenn das Gebietsschema auf eingestellt ist nlInstallationsanweisungen für die Intl-Erweiterung finden Sie in dieser separaten Antwort .
Thousand Separatorin deaktivieren localizednumber??
NumberFormatter, aber Sie müssen eine benutzerdefinierte Twig-Erweiterung schreiben, da der localizedcurrencyFilter 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 formatwie die sprintfFunktion von PHP
formatfunktioniert wie die PHP- sprintfFunktion und kann die Währungsformatierung durchführen .
Verwenden Sie die format_currency
Ab Version 2.12 wurde format_currencyFilter hinzugefügt. Weitere Informationen finden Sie in der offiziellen Dokumentation unter https://twig.symfony.com/doc/2.x/filters/format_currency.html
format_currencyFilter ist ziemlich schlecht, da es üblich ist, Geld als ganze Zahlen zu speichern, und der Filter zeigt die ganze ganze Zahl ...
localizedcurrencyFilter zur Verfügung, mit dem Geld in Twig basierend auf dem Gebietsschema formatiert werden kann. Weitere Informationen finden Sie in meiner Antwort .