Форматирование денег в шаблонах twig
есть ли какие-либо фильтры или sth, как это в twig template engine для форматирования денег или чисел?
4 ответов
на number_format
фильтр был включен в ядро Twig с конца декабря 2011 года. Соответствующая фиксация здесь.
использование: number_format(decimals, decimalSeparator, thousandSeparator)
{{ total|number_format(2) }}
{{ total|number_format(0, '.') }}
{{ total|number_format(2, '.', ',') }}
подробнее об этом читайте в разделе docs
на библиотека расширений Twig содержит ряд полезных расширений для Twig. С выпуском версии 1.2.0, a localizedcurrency
фильтр добавлено в расширение Intl. Как следует из названия, этот фильтр будет форматировать число на основе текущей локали. Он использует PHP NumberFormatter
класс для этого.
использование
этот фильтр очень прост в использовании. Единственным обязательным аргументом для фильтра 3-х букв ISO 4217 код валюты. Например, чтобы отобразить сумму в 27,99 евро, используйте следующую строку кода:
{{ price|localizedcurrency('EUR') }}
это будет отображать различные результаты в зависимости от локали:
-
€27.99
если языковой стандарт установлен вen
-
27,99 €
если языковой стандарт установлен вfr
-
€ 27,99
если языковой стандарт установлен вnl
установка / настройка локаль
инструкции по установке для расширения Intl можно найти в это отдельный ответ.
Если вы используете более старую версию twig, и вы не хотите устанавливать какие-либо расширения, вы можете использовать фильтр формата следующим образом:
{{ "%.2f"|format(total) }}
не очень хорошо, но это работает.
в принципе format
работы как PHP sprintf
функции
вот фильтр, который делает number_format()
:
https://github.com/falmp/Twig-extensions/blob/master/lib/Twig/Extensions/Extension/Number.php