Class yii\i18n\Formatter
继承 | yii\i18n\Formatter » yii\base\Component » yii\base\BaseObject |
---|---|
实现 | yii\base\Configurable |
可用版本自 | 2.0 |
源码 | https://github.com/yiichina/yii2/blob/api/framework/i18n/Formatter.php |
Formatter 提供一组常用的数据格式化方法。
Formatter 提供的格式化方法都以 asXyz()
的形式命名。
它们中的一些行为可以通过 Formatter 的属性进行配置。
例如,通过配置 $dateFormat,可以控制 asDate() 将值格式化为自定义的日期字符串。
Formatter 默认配置为 [[\yii\base\ application]] 中的应用程序组件。
您可以通过 Yii::$app->formatter
访问该实例。
Formatter 类用于根据 $locale 格式化值。 要使此功能起作用,必须安装 PHP intl extension 扩展。 但是,如果没有通过提供回滚实现安装 PHP intl 扩展,大多数方法也可以工作。 没有 intl 扩展时,只有英文的月、日名称。 注意,即使安装了 intl 扩展,在 32 位系统上格式化年份 >=2038 或 <=1901 的日期和时间值也将回到 PHP 实现。 因为 intl 在内部使用 32 位 UNIX 时间戳。 在 64 位系统上,如果安装了 intl 格式化程序,则在所有情况下都使用它。
注意:Formatter 类用于格式化以不同语言和时区显示给用户的值。 如果需要将日期或时间格式化为机器可读的格式, 请使用 PHP date() 函数。
公共属性
属性 | 类型 | 描述 | 被定义在 |
---|---|---|---|
$baseUnits | array | 用于 $measureUnits 中最小可能单位的乘法的基本单位。 | yii\i18n\Formatter |
$behaviors | yii\base\Behavior[] | List of behaviors attached to this component | yii\base\Component |
$booleanFormat | array | 格式化布尔值时显示的文本。
第一个元素对应 false 显示的文本,第二个元素对应 true 显示的文本。
默认为 ['No', 'Yes'] , 其中 Yes 和 No
将会根据 $locale 来翻译。 |
yii\i18n\Formatter |
$calendar | \IntlCalendar|integer|null | 用于日期格式的日历。
该属性的值将直接传递给 [constructor of the IntlDateFormatter class](https://secure. |
yii\i18n\Formatter |
$currencyCode | string | 货币代码 ISO 4217 定义的 3 个字母货币代码,表示 asCurrency() 使用的默认货币。
如果未设置,将使用与 $locale 对应的货币代码。
请注意,在这种情况下,必须为 $locale 指定国家/地区代码,
否则,使用 en-US 无法确定默认货币。 |
yii\i18n\Formatter |
$dateFormat | string | 用于格式化 date 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 [ICU manual](http://userguide. | yii\i18n\Formatter |
$datetimeFormat | string | 用于格式化 date and time 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 [ICU manual](http://userguide. | yii\i18n\Formatter |
$decimalSeparator | string | 格式化数字时显示为小数点的字符。 如果未设置,将使用与 $locale 对应的小数分隔符。 如果 [PHP intl extension](https://secure. | yii\i18n\Formatter |
$defaultTimeZone | string | 如果输入值不显式包含时区,则为输入值假定的时区。
该值必须是有效的时区标识符,例如 UTC ,Europe/Berlin 或者 America/Chicago 。
有关可用时区,请参阅 [php manual](https://secure. |
yii\i18n\Formatter |
$locale | string | 用于本地化日期和数字格式的区域设置 ID。 对于数字和日期格式, 只有在安装了 [PHP intl extension](https://secure. | yii\i18n\Formatter |
$measureUnits | array | 重量和长度测量单位的配置。
此数组包含最常用的测量单位,
但如果您有其它要求,可以更改它。
例如,您可以添加较小的度量单位:
` php
$this->measureUnits[self::UNIT_LENGTH][self::UNIT_SYSTEM_METRIC] = [
'nanometer' => 0. |
yii\i18n\Formatter |
$nullDisplay | string | 格式化值为 null 时显示的文本。
默认为 '<span class="not-set">(not set)</span>' ,其中 (not set)
将会根据 $locale 来翻译。 |
yii\i18n\Formatter |
$numberFormatterOptions | array | 传递给 intl [NumberFormatter::setAttribute()](https://secure. | yii\i18n\Formatter |
$numberFormatterSymbols | array | 传递给 intl [NumberFormatter::setSymbol()](https://secure. | yii\i18n\Formatter |
$numberFormatterTextOptions | array | 传递给 intl [NumberFormatter::setTextAttribute()](https://secure. | yii\i18n\Formatter |
$sizeFormatBase | integer | 计算千字节的基数(每千字节为 1000 或 1024 个字节),由 asSize() 和 asShortSize() 使用。 默认为 1024。 | yii\i18n\Formatter |
$systemOfUnits | string | 默认的系统度量单位。默认为 UNIT_SYSTEM_METRIC。 可能的值: - UNIT_SYSTEM_METRIC - UNIT_SYSTEM_IMPERIAL | yii\i18n\Formatter |
$thousandSeparator | string | 格式化数字时显示的千位分隔符(也称为分组分隔符)的字符。 如果未设置,将使用与 $locale 对应的千位分隔符。 如果 [PHP intl extension](https://secure. | yii\i18n\Formatter |
$timeFormat | string | 用于格式化 time 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 [ICU manual](http://userguide. | yii\i18n\Formatter |
$timeZone | string | 用于格式化时间和日期值的时区。 这可以是可传递给 [date_default_timezone_set()](https://secure. | yii\i18n\Formatter |
公共方法
方法 | 描述 | 被定义在 |
---|---|---|
__call() | Calls the named method which is not a class method. | yii\base\Component |
__clone() | This method is called after the object is created by cloning an existing one. | yii\base\Component |
__construct() | Constructor. | yii\base\BaseObject |
__get() | Returns the value of a component property. | yii\base\Component |
__isset() | Checks if a property is set, i.e. defined and not null. | yii\base\Component |
__set() | Sets the value of a component property. | yii\base\Component |
__unset() | Sets a component property to be null. | yii\base\Component |
asBoolean() | 将值格式化为布尔值。 | yii\i18n\Formatter |
asCurrency() | 将值格式化为货币编号。 | yii\i18n\Formatter |
asDate() | 将值格式化为日期。 | yii\i18n\Formatter |
asDatetime() | 将值格式化为日期时间。 | yii\i18n\Formatter |
asDecimal() | 将值格式化为十进制数。 | yii\i18n\Formatter |
asDuration() | 以将时间值值格式为易读形式的持续时间。 | yii\i18n\Formatter |
asEmail() | 将值格式化为 mailto 链接。 | yii\i18n\Formatter |
asHtml() | 将值格式化为 HTML 文本。 该值将使用 yii\helpers\HtmlPurifier 进行过滤,以避免 XSS 攻击。 如果你不想对值进行过滤,请使用 asRaw()。 | yii\i18n\Formatter |
asImage() | 将值格式化为 img 标签。 | yii\i18n\Formatter |
asInteger() | 通过移除小数部分将值格式化为整数。 | yii\i18n\Formatter |
asLength() | 将值格式化为易读形式的长度,例如 12 meters 。
如果需要将值单位更改为最小单位的乘数,
并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。 |
yii\i18n\Formatter |
asNtext() | 将值格式化为 HTML 编码的纯文本,并拆分换行符为新行。 | yii\i18n\Formatter |
asOrdinal() | 将值格式化为数字的序数值。 | yii\i18n\Formatter |
asParagraphs() | 将值格式化为HTML编码的文本段落。
每个文本段落都包含在一个 <p> 标签中。
一个或多个连续的空行分为两段。 |
yii\i18n\Formatter |
asPercent() | 将值格式化为带有 "%" 符号的百分比数字。 | yii\i18n\Formatter |
asRaw() | 按原样格式化值,不进行任何格式化。
此方法只返回没有任何格式的参数。
唯一的例外是当值为 null 时,将使用 $nullDisplay 格式化。 |
yii\i18n\Formatter |
asRelativeTime() | 将日期值与当前时间的时间间隔格式化为易读的形式。 | yii\i18n\Formatter |
asScientific() | 将值格式化为科学数字。 | yii\i18n\Formatter |
asShortLength() | 将值格式化为易读形式的长度,例如 12 m 。
这是 asLength() 的缩写形式。 |
yii\i18n\Formatter |
asShortSize() | 将以字节为单位的值格式化为易读形式的大小,例如 12 kB 。 |
yii\i18n\Formatter |
asShortWeight() | 将值格式化为易读形式的重量,例如 12 kg 。
这是 asWeight() 的缩写形式。 |
yii\i18n\Formatter |
asSize() | 将值格式化为易读形式的字节大小,例如 12 kilobytes 。 |
yii\i18n\Formatter |
asSpellout() | 将值格式化为数字拼写。 | yii\i18n\Formatter |
asText() | 将值格式化为 HTML 编码的纯文本。 | yii\i18n\Formatter |
asTime() | 将值格式化为时间。 | yii\i18n\Formatter |
asTimestamp() | 将浮点数中的日期,时间或日期时间格式化为 UNIX 时间戳(自1970-01-01以来的秒数)。 | yii\i18n\Formatter |
asUrl() | 将值格式化为超链接。 | yii\i18n\Formatter |
asWeight() | 将值格式化为易读形式的重量,例如 12 kilograms 。
如果需要将值单位更改为最小单位的乘数,
并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。 |
yii\i18n\Formatter |
attachBehavior() | Attaches a behavior to this component. | yii\base\Component |
attachBehaviors() | Attaches a list of behaviors to the component. | yii\base\Component |
behaviors() | Returns a list of behaviors that this component should behave as. | yii\base\Component |
canGetProperty() | Returns a value indicating whether a property can be read. | yii\base\Component |
canSetProperty() | Returns a value indicating whether a property can be set. | yii\base\Component |
className() | Returns the fully qualified name of this class. | yii\base\BaseObject |
detachBehavior() | Detaches a behavior from the component. | yii\base\Component |
detachBehaviors() | Detaches all behaviors from the component. | yii\base\Component |
ensureBehaviors() | Makes sure that the behaviors declared in behaviors() are attached to this component. | yii\base\Component |
format() | 根据给定的格式类型格式化值。 此方法将调用此类中可用的 "as" 方法来进行格式化。例如,如果格式为 "html", 将使用 asHtml()。格式名称不区分大小写。 对于类型 "xyz",将使用方法 "asXyz"。 | yii\i18n\Formatter |
getBehavior() | Returns the named behavior object. | yii\base\Component |
getBehaviors() | Returns all behaviors attached to this component. | yii\base\Component |
hasEventHandlers() | Returns a value indicating whether there is any handler attached to the named event. | yii\base\Component |
hasMethod() | Returns a value indicating whether a method is defined. | yii\base\Component |
hasProperty() | Returns a value indicating whether a property is defined for this component. | yii\base\Component |
init() | Initializes the object. | yii\i18n\Formatter |
off() | Detaches an existing event handler from this component. | yii\base\Component |
on() | Attaches an event handler to an event. | yii\base\Component |
trigger() | Triggers an event. | yii\base\Component |
受保护的方法
方法 | 描述 | 被定义在 |
---|---|---|
asCurrencyStringFallback() | 将值格式化为货币号的回退函数。 | yii\i18n\Formatter |
asDecimalStringFallback() | 将值格式化为十进制数的回退函数。 | yii\i18n\Formatter |
asIntegerStringFallback() | 将值通过移除小数部分格式化为整数的回退函数。 | yii\i18n\Formatter |
asPercentStringFallback() | 将值格式化为带 "%" 符号百分数的回退函数。 | yii\i18n\Formatter |
createNumberFormatter() | 创建基于给定类型和格式的数字格式。 | yii\i18n\Formatter |
isNormalizedValueMispresented() | 检查给定值及其规范化版本的值是否不同。 | yii\i18n\Formatter |
normalizeDatetimeValue() | 将给定的日期时间值规范化为可由各种日期/时间格式化方法采用的 DateTime 对象。 | yii\i18n\Formatter |
normalizeNumericStringValue() | 规范化数字字符串值。 | yii\i18n\Formatter |
normalizeNumericValue() | 规范化数字输入值。 | yii\i18n\Formatter |
常量
常量 | 值 | 描述 | 被定义在 |
---|---|---|---|
FORMAT_WIDTH_LONG | 'long' | yii\i18n\Formatter | |
FORMAT_WIDTH_SHORT | 'short' | yii\i18n\Formatter | |
UNIT_LENGTH | 'length' | yii\i18n\Formatter | |
UNIT_SYSTEM_IMPERIAL | 'imperial' | yii\i18n\Formatter | |
UNIT_SYSTEM_METRIC | 'metric' | yii\i18n\Formatter | |
UNIT_WEIGHT | 'mass' | yii\i18n\Formatter |
属性详情
用于 $measureUnits 中最小可能单位的乘法的基本单位。
格式化布尔值时显示的文本。
第一个元素对应 false
显示的文本,第二个元素对应 true
显示的文本。
默认为 ['No', 'Yes']
, 其中 Yes
和 No
将会根据 $locale 来翻译。
用于日期格式的日历。
该属性的值将直接传递给 constructor of the IntlDateFormatter
class.
默认值为 null
,这意味着将使用公历。
您也可以为公历日历显式传递常量 \IntlDateFormatter::GREGORIAN
。
要使用替代日历,例如 Jalali calendar,
请将此属性设置为 \IntlDateFormatter::TRADITIONAL
。
然后必须在 $locale 中指定日历,例如对于 persian 日历,格式化程序的配置将是:
'formatter' => [
'locale' => 'fa_IR@calendar=persian',
'calendar' => \IntlDateFormatter::TRADITIONAL,
],
可在 ICU manual 中找到可用的日历名称。
从 PHP 5.5 开始,您也可以使用 \IntlCalendar 类的实例。 查看 PHP manual 了解更多详情。
如果 PHP intl extension 不可用,则设置此属性将不起作用。
参见:
货币代码 ISO 4217 定义的 3 个字母货币代码,表示 asCurrency() 使用的默认货币。
如果未设置,将使用与 $locale 对应的货币代码。
请注意,在这种情况下,必须为 $locale 指定国家/地区代码,
否则,使用 en-US
无法确定默认货币。
用于格式化 date 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。
它也可以是 ICU manual 中指定的自定义格式。
这也可以是一个前缀为 php:
的字符串,
表示可以由 PHP date() 函数识别的格式。
例如
'MM/dd/yyyy' // date in ICU format
'php:m/d/Y' // the same date in PHP format
用于格式化 date and time 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。
它也可以是 ICU manual 中指定的自定义格式。
这也可以是一个前缀为 php:
的字符串,
表示可以由 PHP date() 函数识别的格式。
例如:
'MM/dd/yyyy HH:mm:ss' // date and time in ICU format
'php:m/d/Y H:i:s' // the same date and time in PHP format
格式化数字时显示为小数点的字符。 如果未设置,将使用与 $locale 对应的小数分隔符。 如果 PHP intl extension 不可用,默认值为 '.'。
如果输入值不显式包含时区,则为输入值假定的时区。
该值必须是有效的时区标识符,例如 UTC
,Europe/Berlin
或者 America/Chicago
。
有关可用时区,请参阅 php manual。
它默认为 UTC
,因此如果将日期时间值存储在数据库的另一个时区中,则只需调整此值。
请注意,UNIX 时间戳的定义始终为 UTC。 这意味着指定与 UTC 不同的默认时区对作为 UNIX 时间戳给出的日期值没有影响。
用于本地化日期和数字格式的区域设置 ID。 对于数字和日期格式, 只有在安装了 PHP intl extension 时才有效。 如果没有设置,将使用 yii\base\Application::$language。
重量和长度测量单位的配置。 此数组包含最常用的测量单位, 但如果您有其它要求,可以更改它。
例如,您可以添加较小的度量单位:
$this->measureUnits[self::UNIT_LENGTH][self::UNIT_SYSTEM_METRIC] = [
'nanometer' => 0.000001
]
参见:
格式化值为 null
时显示的文本。
默认为 '<span class="not-set">(not set)</span>'
,其中 (not set)
将会根据 $locale 来翻译。
传递给 intl NumberFormatter::setAttribute() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。
请参阅 PHP manual 获取可以调整的选项。
例如,要调整小数位的最大值和最小值,您可以配置此属性,如下所示:
[
NumberFormatter::MIN_FRACTION_DIGITS => 0,
NumberFormatter::MAX_FRACTION_DIGITS => 2,
]
传递给 intl NumberFormatter::setSymbol() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。
请参阅 PHP manual 获取可以调整的选项。
例如,选择自定义货币符号,例如俄罗斯卢布使用 U+20BD 而不是 руб.
:
[
NumberFormatter::CURRENCY_SYMBOL => '₽',
]
传递给 intl NumberFormatter::setTextAttribute() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。
请参阅 PHP manual 获取可以调整的选项。
例如,要更改负数的减号,您可以配置此属性,如下所示:
[
NumberFormatter::NEGATIVE_PREFIX => 'MINUS',
]
计算千字节的基数(每千字节为 1000 或 1024 个字节),由 asSize() 和 asShortSize() 使用。 默认为 1024。
默认的系统度量单位。默认为 UNIT_SYSTEM_METRIC。 可能的值:
参见:
格式化数字时显示的千位分隔符(也称为分组分隔符)的字符。 如果未设置,将使用与 $locale 对应的千位分隔符。 如果 PHP intl extension 不可用,默认值为 ','。
用于格式化 time 的默认格式字符串。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。
它也可以是 ICU manual 中指定的自定义格式。
这也可以是一个前缀为 php:
的字符串,
表示可以由 PHP date() 函数识别的格式。
例如:
'HH:mm:ss' // time in ICU format
'php:H:i:s' // the same time in PHP format
用于格式化时间和日期值的时区。
这可以是可传递给 date_default_timezone_set() 的任何值,
例如 UTC
,Europe/Berlin
或 America/Chicago
。
有关可用时区,请参阅 php manual。
如果未设置此属性,将使用 yii\base\Application::$timeZone。
请注意,如果输入日期值中不包含任何时区,则默认情况下输入数据的默认时区为 UTC。 如果将数据存储在数据库的不同时区,则必须相应地调整 $defaultTimeZone。
方法详情
将值格式化为布尔值。
参见 $booleanFormat.
public string asBoolean($value) | ||
$value | mixed | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
将值格式化为货币编号。
此函数不需要安装 PHP intl extension 也能工作, 但是强烈建议安装它以获得良好的格式化结果。
从版本 2.0.16 起,规范化后出现错误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。
public string asCurrency($value, $currency = null, $options = [], $textOptions = []) | ||
$value | mixed | 要格式化的值。 |
$currency | string | 3 个字母的 ISO 4217 货币代码,表示要使用的货币。 如果为 null,将使用 $currencyCode。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 如果没有给出货币且未定义 $currencyCode。 |
将值格式化为货币号的回退函数。
protected string asCurrencyStringFallback($value, $currency = null) | ||
$value | string|integer|float | 要格式化的值。 |
$currency | string | 3 个字母的 ISO 4217 货币代码,表示要使用的货币。 如果为 null,将使用 $currencyCode。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidConfigException | 如果没有给出货币且未定义 $currencyCode。 |
将值格式化为日期。
参见 $dateFormat.
public string asDate($value, $format = null) | ||
$value | integer|string|DateTime | 要格式化的值。 支持以下类型的值:
在格式化之前,格式化程序将根据 $timeZone 转换日期值。
如果不应执行时区转换,则需要将 $defaultTimeZone 和 $timeZone 设置为相同的值。
此外,不会对没有时间信息的值执行转换,例如, |
$format | string | 用于将值转换为日期字符串的格式。 如果为 null,将使用 $dateFormat。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。 这也可以是一个前缀为 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值无法计算为日期值。 |
throws | yii\base\InvalidConfigException | 如果日期格式无效。 |
将值格式化为日期时间。
参见 $datetimeFormat.
public string asDatetime($value, $format = null) | ||
$value | integer|string|DateTime | 要格式化的值。 支持以下类型的值:
在格式化之前,格式化程序将根据 $timeZone 转换日期值。 如果不应执行时区转换,则需要将 $defaultTimeZone 和 $timeZone 设置为相同的值。 |
$format | string | 用于将值转换为日期字符串的格式。 如果为 null,则将使用 $datetimeFormat。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。 这也可以是一个前缀为 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值无法计算为日期值。 |
throws | yii\base\InvalidConfigException | 如果日期格式无效。 |
将值格式化为十进制数。
属性 $decimalSeparator 将用于表示小数点。 该值自动舍入为定义的十进制数字。
从版本 2.0.16 起,规范化后出现错误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。
参见:
public string asDecimal($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | mixed | 要格式化的值。 |
$decimals | integer | 小数点后的位数。
如果没有给出,则位数取决于输入值,
并且基于 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
protected string asDecimalStringFallback($value, $decimals = 2) | ||
$value | string|integer|float | 要格式化的值。 |
$decimals | integer | 小数点后的位数。默认值是 |
return | string | 格式化的结果。 |
---|
以将时间值值格式为易读形式的持续时间。
public string asDuration($value, $implodeString = ', ', $negativeSign = '-') | ||
$value | DateInterval|string|integer | 要格式化的值。 可接受的格式:
|
$implodeString | string | 将用于连接持续时间部分。 默认为 |
$negativeSign | string | 当它为负数时,将为格式化持续时间的前缀。 默认为 |
return | string | The formatted duration. |
---|
将值格式化为 mailto 链接。
public string asEmail($value, $options = []) | ||
$value | string | 要格式化的值。 |
$options | array | 键值对形式的标签选项。见 yii\helpers\Html::mailto()。 |
return | string | 格式化的结果。 |
---|
将值格式化为 HTML 文本。 该值将使用 yii\helpers\HtmlPurifier 进行过滤,以避免 XSS 攻击。 如果你不想对值进行过滤,请使用 asRaw()。
public string asHtml($value, $config = null) | ||
$value | string | 要格式化的值。 |
$config | array|null | HTMLPurifier 类的配置。 |
return | string | 格式化的结果。 |
---|
将值格式化为 img 标签。
public string asImage($value, $options = []) | ||
$value | mixed | 要格式化的值。 |
$options | array | 键值对形式的标签选项。见 yii\helpers\Html::img()。 |
return | string | 格式化的结果。 |
---|
通过移除小数部分将值格式化为整数。
从版本 2.0.16 起,规范化后出现错误的数字使用误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。
public string asInteger($value, $options = [], $textOptions = []) | ||
$value | mixed | 要格式化的值。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
将值通过移除小数部分格式化为整数的回退函数。
protected string asIntegerStringFallback($value) | ||
$value | string|integer|float | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
将值格式化为易读形式的长度,例如 12 meters
。
如果需要将值单位更改为最小单位的乘数,
并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。
参见 asLength().
public string asLength($value, $decimals = null, $numberOptions = [], $textOptions = []) | ||
$value | float|integer | 要格式化的值。 |
$decimals | integer | 小数点后的位数。 |
$numberOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 未安装 INTL 或不包含所需信息时。 |
将值格式化为 HTML 编码的纯文本,并拆分换行符为新行。
public string asNtext($value) | ||
$value | string | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
public string asOrdinal($value) | ||
$value | mixed | 要格式化的值 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | when the PHP intl extension is not available. |
将值格式化为HTML编码的文本段落。
每个文本段落都包含在一个 <p>
标签中。
一个或多个连续的空行分为两段。
public string asParagraphs($value) | ||
$value | string | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
将值格式化为带有 "%" 符号的百分比数字。
从版本 2.0.16 起,规范化后出现错误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。
public string asPercent($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | mixed | 要格式化的值。这必须是一个小数,例如 |
$decimals | integer | 小数点后的位数。
如果没有给出,则位数取决于输入值,
并且基于 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
将值格式化为带 "%" 符号百分数的回退函数。
属性 $decimalSeparator 将用于表示小数点。 该值自动舍入为定义的十进制数字。
protected string asPercentStringFallback($value, $decimals = null) | ||
$value | string|integer|float | 要格式化的值。 |
$decimals | integer | 小数点后的位数。默认值为 |
return | string | 格式化的结果。 |
---|
按原样格式化值,不进行任何格式化。
此方法只返回没有任何格式的参数。
唯一的例外是当值为 null
时,将使用 $nullDisplay 格式化。
public string asRaw($value) | ||
$value | mixed | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
将日期值与当前时间的时间间隔格式化为易读的形式。
此方法可以以三种不同的方式使用:
- 使用相对于
now
的时间戳。 - 使用相对于
$referenceTime
的时间戳。 DateInterval
对象。
public string asRelativeTime($value, $referenceTime = null) | ||
$value | integer|string|DateTime|DateInterval | 要格式化的值。 支持以下类型的值:
|
$referenceTime | integer|string|DateTime | 如果指定了该值,当 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值无法计算为日期值。 |
将值格式化为科学数字。
public string asScientific($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | mixed | 要格式化的值。 |
$decimals | integer | 小数点后的位数。
如果没有给出,则位数取决于输入值,
并且基于 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
将值格式化为易读形式的长度,例如 12 m
。
这是 asLength() 的缩写形式。
如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。
参见 asLength().
public string asShortLength($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | float|integer | 要格式化的值。 |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 未安装 INTL 或不包含所需信息时。 |
将以字节为单位的值格式化为易读形式的大小,例如 12 kB
。
这是 asSize() 的缩写形式。
如果 $sizeFormatBase 是 1024, 将在格式化结果中使用 binary prefixes (例如,kibibyte/KiB, mebibyte/MiB, ...)
参见:
public string asShortSize($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | string|integer|float | 要格式化的字节值。 |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
将值格式化为易读形式的重量,例如 12 kg
。
这是 asWeight() 的缩写形式。
如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。
public string asShortWeight($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | float|integer | 要格式化的值。 |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 未安装 INTL 或不包含所需信息时。 |
将值格式化为易读形式的字节大小,例如 12 kilobytes
。
如果 $sizeFormatBase 是 1024, 将在格式化结果中使用 binary prefixes (例如,kibibyte/KiB, mebibyte/MiB, ...)
参见:
public string asSize($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | string|integer|float | 要格式化的字节值。 |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
public string asSpellout($value) | ||
$value | mixed | 要格式化的值 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 当 PHP intl extension 不可用时。 |
将值格式化为 HTML 编码的纯文本。
public string asText($value) | ||
$value | string | 要格式化的值。 |
return | string | 格式化的结果。 |
---|
将值格式化为时间。
参见 $timeFormat.
public string asTime($value, $format = null) | ||
$value | integer|string|DateTime | 要格式化的值。 支持以下类型的值:
在格式化之前,格式化程序将根据 $timeZone 转换日期值。 如果不应执行时区转换,则需要将 $defaultTimeZone 和 $timeZone 设置为相同的值。 |
$format | string | 用于将值转换为日期字符串的格式。 如果为 null,将使用 $timeFormat。 这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。 这也可以是一个前缀为 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值无法计算为日期值。 |
throws | yii\base\InvalidConfigException | 如果日期格式无效。 |
将浮点数中的日期,时间或日期时间格式化为 UNIX 时间戳(自1970-01-01以来的秒数)。
public string asTimestamp($value) | ||
$value | integer|string|DateTime | 要格式化的值。 支持以下类型的值:
|
return | string | 格式化的结果。 |
---|
将值格式化为超链接。
public string asUrl($value, $options = []) | ||
$value | mixed | 要格式化的值。 |
$options | array | 键值对形式的标签选项。见 yii\helpers\Html::a()。 |
return | string | 格式化的结果。 |
---|
将值格式化为易读形式的重量,例如 12 kilograms
。
如果需要将值单位更改为最小单位的乘数,
并使 $systemOfUnits 在 UNIT_SYSTEM_METRIC 或 UNIT_SYSTEM_IMPERIAL 之间切换,请检查属性 $baseUnits。
public string asWeight($value, $decimals = null, $options = [], $textOptions = []) | ||
$value | float|integer | 要格式化的值。 |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | string | 格式化的结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字或格式化失败。 |
throws | yii\base\InvalidConfigException | 未安装 INTL 或不包含所需信息时。 |
创建基于给定类型和格式的数字格式。
您可以重写此方法创建基于模式的数字格式化程序。
protected \NumberFormatter createNumberFormatter($style, $decimals = null, $options = [], $textOptions = []) | ||
$style | integer | 数字格式器的类型。 类型有: NumberFormatter::DECIMAL, ::CURRENCY, ::PERCENT, ::SCIENTIFIC, ::SPELLOUT, ::ORDINAL ::DURATION, ::PATTERN_RULEBASED, ::DEFAULT_STYLE, ::IGNORE |
$decimals | integer | 小数点后的位数。 |
$options | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。 |
$textOptions | array | 数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。 |
return | \NumberFormatter | 创建的格式化程序实例 |
---|
根据给定的格式类型格式化值。 此方法将调用此类中可用的 "as" 方法来进行格式化。例如,如果格式为 "html", 将使用 asHtml()。格式名称不区分大小写。 对于类型 "xyz",将使用方法 "asXyz"。
public string format($value, $format) | ||
$value | mixed | 要格式化的值。 |
$format | string|array|Closure | 值的格式, 例如:"html","text" 或者一个匿名函数返回的格式值。 要指定格式化方法的其他参数,可以使用数组。
数组的第一个元素指定格式名称,
而其余元素将用作格式化方法的参数。
例如, 匿名函数应为: |
return | string | 格式化结果。 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果此类不支持格式类型。 |
Initializes the object.
This method is invoked at the end of the constructor after the object is initialized with the given configuration.
public void init() |
检查给定值及其规范化版本的值是否不同。
protected boolean isNormalizedValueMispresented($value, $normalizedValue) | ||
$value | string|float|integer | |
$normalizedValue | float|integer |
将给定的日期时间值规范化为可由各种日期/时间格式化方法采用的 DateTime 对象。
protected DateTime|array normalizeDatetimeValue($value, $checkDateTimeInfo = false) | ||
$value | integer|string|DateTime | 要标准化的日期时间值。 支持以下类型的值:
|
$checkDateTimeInfo | boolean | 是否还检查日期/时间值是否附加了一些时间和日期信息。
默认为 |
return | DateTime|array | 规范化的日期时间值。
从版本 2.0.1 开始,如果 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值无法计算为日期值。 |
规范化数字字符串值。
protected string normalizeNumericStringValue($value) | ||
$value | string | |
return | string | 规范化数字字符串值 |
---|
protected float|integer normalizeNumericValue($value) | ||
$value | mixed | 输入的值 |
return | float|integer | 规范化的数值 |
---|---|---|
throws | yii\base\InvalidArgumentException | 如果输入值不是数字。 |