没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

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'], 其中 YesNo 将会根据 $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 如果输入值不显式包含时区,则为输入值假定的时区。 该值必须是有效的时区标识符,例如 UTCEurope/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。 如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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。 如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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

属性详情

$baseUnits 公共 属性 (自版本 2.0.13 可用)

用于 $measureUnits 中最小可能单位的乘法的基本单位。

public array $baseUnits = [self::UNIT_LENGTH => [self::UNIT_SYSTEM_IMPERIAL => 12self::UNIT_SYSTEM_METRIC => 1000], self::UNIT_WEIGHT => [self::UNIT_SYSTEM_IMPERIAL => 7000self::UNIT_SYSTEM_METRIC => 1000]]
$booleanFormat 公共 属性

格式化布尔值时显示的文本。 第一个元素对应 false 显示的文本,第二个元素对应 true 显示的文本。 默认为 ['No', 'Yes'], 其中 YesNo 将会根据 $locale 来翻译。

public array $booleanFormat null
$calendar 公共 属性 (自版本 2.0.7 可用)

用于日期格式的日历。 该属性的值将直接传递给 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 不可用,则设置此属性将不起作用。

参见:

public \IntlCalendar|integer|null $calendar null
$currencyCode 公共 属性

货币代码 ISO 4217 定义的 3 个字母货币代码,表示 asCurrency() 使用的默认货币。 如果未设置,将使用与 $locale 对应的货币代码。 请注意,在这种情况下,必须为 $locale 指定国家/地区代码, 否则,使用 en-US 无法确定默认货币。

public string $currencyCode null
$dateFormat 公共 属性

用于格式化 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
public string $dateFormat 'medium'
$datetimeFormat 公共 属性

用于格式化 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
public string $datetimeFormat 'medium'
$decimalSeparator 公共 属性

格式化数字时显示为小数点的字符。 如果未设置,将使用与 $locale 对应的小数分隔符。 如果 PHP intl extension 不可用,默认值为 '.'。

public string $decimalSeparator null
$defaultTimeZone 公共 属性 (自版本 2.0.1 可用)

如果输入值不显式包含时区,则为输入值假定的时区。

该值必须是有效的时区标识符,例如 UTCEurope/Berlin 或者 America/Chicago。 有关可用时区,请参阅 php manual

它默认为 UTC,因此如果将日期时间值存储在数据库的另一个时区中,则只需调整此值。

请注意,UNIX 时间戳的定义始终为 UTC。 这意味着指定与 UTC 不同的默认时区对作为 UNIX 时间戳给出的日期值没有影响。

public string $defaultTimeZone 'UTC'
$locale 公共 属性

用于本地化日期和数字格式的区域设置 ID。 对于数字和日期格式, 只有在安装了 PHP intl extension 时才有效。 如果没有设置,将使用 yii\base\Application::$language

public string $locale null
$measureUnits 公共 属性 (自版本 2.0.13 可用)

重量和长度测量单位的配置。 此数组包含最常用的测量单位, 但如果您有其它要求,可以更改它。

例如,您可以添加较小的度量单位:

$this->measureUnits[self::UNIT_LENGTH][self::UNIT_SYSTEM_METRIC] = [
    'nanometer' => 0.000001
]

参见:

public array $measureUnits = [self::UNIT_LENGTH => [self::UNIT_SYSTEM_IMPERIAL => ['inch' => 1'foot' => 12'yard' => 36'chain' => 792'furlong' => 7920'mile' => 63360], self::UNIT_SYSTEM_METRIC => ['millimeter' => 1'centimeter' => 10'meter' => 1000'kilometer' => 1000000]], self::UNIT_WEIGHT => [self::UNIT_SYSTEM_IMPERIAL => ['grain' => 1'drachm' => 27.34375'ounce' => 437.5'pound' => 7000'stone' => 98000'quarter' => 196000'hundredweight' => 784000'ton' => 15680000], self::UNIT_SYSTEM_METRIC => ['gram' => 1'kilogram' => 1000'ton' => 1000000]]]
$nullDisplay 公共 属性

格式化值为 null 时显示的文本。 默认为 '<span class="not-set">(not set)</span>',其中 (not set) 将会根据 $locale 来翻译。

public string $nullDisplay null
$numberFormatterOptions 公共 属性

传递给 intl NumberFormatter::setAttribute() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。

请参阅 PHP manual 获取可以调整的选项。

例如,要调整小数位的最大值和最小值,您可以配置此属性,如下所示:

[
    NumberFormatter::MIN_FRACTION_DIGITS => 0,
    NumberFormatter::MAX_FRACTION_DIGITS => 2,
]
$numberFormatterSymbols 公共 属性 (自版本 2.0.4 可用)

传递给 intl NumberFormatter::setSymbol() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。

请参阅 PHP manual 获取可以调整的选项。

例如,选择自定义货币符号,例如俄罗斯卢布使用 U+20BD 而不是 руб.

[
    NumberFormatter::CURRENCY_SYMBOL => '₽',
]
$numberFormatterTextOptions 公共 属性

传递给 intl NumberFormatter::setTextAttribute() 方法的键值对, 所有数字格式化程序由 createNumberFormatter() 所创建。 仅安装了 PHP intl extension 时,此属性才有效。

请参阅 PHP manual 获取可以调整的选项。

例如,要更改负数的减号,您可以配置此属性,如下所示:

[
    NumberFormatter::NEGATIVE_PREFIX => 'MINUS',
]
$sizeFormatBase 公共 属性

计算千字节的基数(每千字节为 1000 或 1024 个字节),由 asSize()asShortSize() 使用。 默认为 1024。

public integer $sizeFormatBase 1024
$systemOfUnits 公共 属性 (自版本 2.0.13 可用)

默认的系统度量单位。默认为 UNIT_SYSTEM_METRIC。 可能的值:

参见:

public string $systemOfUnits self::UNIT_SYSTEM_METRIC
$thousandSeparator 公共 属性

格式化数字时显示的千位分隔符(也称为分组分隔符)的字符。 如果未设置,将使用与 $locale 对应的千位分隔符。 如果 PHP intl extension 不可用,默认值为 ','。

public string $thousandSeparator null
$timeFormat 公共 属性

用于格式化 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
public string $timeFormat 'medium'
$timeZone 公共 属性

用于格式化时间和日期值的时区。

这可以是可传递给 date_default_timezone_set() 的任何值, 例如 UTCEurope/BerlinAmerica/Chicago。 有关可用时区,请参阅 php manual。 如果未设置此属性,将使用 yii\base\Application::$timeZone

请注意,如果输入日期值中不包含任何时区,则默认情况下输入数据的默认时区为 UTC。 如果将数据存储在数据库的不同时区,则必须相应地调整 $defaultTimeZone

public string $timeZone null

方法详情

asBoolean() 公共 方法

将值格式化为布尔值。

参见 $booleanFormat.

public string asBoolean($value)
$value mixed

要格式化的值。

return string

格式化的结果。

asCurrency() 公共 方法

将值格式化为货币编号。

此函数不需要安装 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

asCurrencyStringFallback() 受保护 方法 (自版本 2.0.16 可用)

将值格式化为货币号的回退函数。

protected string asCurrencyStringFallback($value, $currency null)
$value string|integer|float

要格式化的值。

$currency string

3 个字母的 ISO 4217 货币代码,表示要使用的货币。 如果为 null,将使用 $currencyCode

return string

格式化的结果。

throws yii\base\InvalidConfigException

如果没有给出货币且未定义 $currencyCode

asDate() 公共 方法

将值格式化为日期。

参见 $dateFormat.

public string asDate($value, $format null)
$value integer|string|DateTime

要格式化的值。 支持以下类型的值:

  • 表示 UNIX 时间戳的整数。UNIX 时间戳的定义始终为 UTC。
  • 可以供 DateTime object 解析的字符串。 时间戳假定在 $defaultTimeZone,除非给出一个明确的时区。
  • 一个 DateTime PHP 对象。 您可以为 DateTime 对象设置时区,以指定源时区。

在格式化之前,格式化程序将根据 $timeZone 转换日期值。 如果不应执行时区转换,则需要将 $defaultTimeZone$timeZone 设置为相同的值。 此外,不会对没有时间信息的值执行转换,例如,"2017-06-05".

$format string

用于将值转换为日期字符串的格式。 如果为 null,将使用 $dateFormat

这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。

这也可以是一个前缀为 php: 的字符串, 表示可以由 PHP date() 函数识别的格式。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值无法计算为日期值。

throws yii\base\InvalidConfigException

如果日期格式无效。

asDatetime() 公共 方法

将值格式化为日期时间。

参见 $datetimeFormat.

public string asDatetime($value, $format null)
$value integer|string|DateTime

要格式化的值。 支持以下类型的值:

  • 表示 UNIX 时间戳的整数。UNIX 时间戳的定义始终为 UTC。
  • 可以供 DateTime object 解析的字符串。 时间戳假定在 $defaultTimeZone,除非给出一个明确的时区。
  • 一个 DateTime 对象。 您可以为 DateTime 对象设置时区,以指定源时区。

在格式化之前,格式化程序将根据 $timeZone 转换日期值。 如果不应执行时区转换,则需要将 $defaultTimeZone$timeZone 设置为相同的值。

$format string

用于将值转换为日期字符串的格式。 如果为 null,则将使用 $datetimeFormat

这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。

这也可以是一个前缀为 php: 的字符串, 表示可以由 PHP date() 函数识别的格式。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值无法计算为日期值。

throws yii\base\InvalidConfigException

如果日期格式无效。

asDecimal() 公共 方法

将值格式化为十进制数。

属性 $decimalSeparator 将用于表示小数点。 该值自动舍入为定义的十进制数字。

从版本 2.0.16 起,规范化后出现错误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。

参见:

public string asDecimal($value, $decimals null, $options = [], $textOptions = [])
$value mixed

要格式化的值。

$decimals integer

小数点后的位数。 如果没有给出,则位数取决于输入值, 并且基于 NumberFormatter::MIN_FRACTION_DIGITSNumberFormatter::MAX_FRACTION_DIGITS 确定, 可以使用 $numberFormatterOptions 进行配置。 如果 PHP intl 扩展不可用,则默认值为 2。 如果要在 intl 可用和不可用的环境之间保持一致的行为, 则应在此处明确指定值。

$options array

数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。

$textOptions array

数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值不是数字或格式化失败。

asDecimalStringFallback() 受保护 方法 (自版本 2.0.16 可用)

将值格式化为十进制数的回退函数。

属性 $decimalSeparator 将用于表示小数点。 该值自动舍入为定义的十进制数字。

参见:

protected string asDecimalStringFallback($value, $decimals 2)
$value string|integer|float

要格式化的值。

$decimals integer

小数点后的位数。默认值是 2

return string

格式化的结果。

asDuration() 公共 方法 (自版本 2.0.7 可用)

以将时间值值格式为易读形式的持续时间。

public string asDuration($value, $implodeString ', ', $negativeSign '-')
$value DateInterval|string|integer

要格式化的值。 可接受的格式:

  • DateInterval object
  • 整数 - 秒数。 例如:值 131 表示 2 minutes, 11 seconds
  • ISO8601 持续时间格式。例如,以下这些值表示 1 day, 2 hours, 30 minutes 持续时间: 2015-01-01T13:00:00Z/2015-01-02T13:30:00Z - 在两个日期时间值之间 2015-01-01T13:00:00Z/P1D2H30M - 日期时间值之后的时间间隔 P1D2H30M/2015-01-02T13:30:00Z - 日期时间值之前的时间间隔 P1D2H30M - 只是一个日期间隔 P-1D2H30M - 一个负日期间隔(-1 day, 2 hours, 30 minutes
$implodeString string

将用于连接持续时间部分。 默认为,

$negativeSign string

当它为负数时,将为格式化持续时间的前缀。 默认为-

return string

The formatted duration.

asEmail() 公共 方法

将值格式化为 mailto 链接。

public string asEmail($value, $options = [])
$value string

要格式化的值。

$options array

键值对形式的标签选项。见 yii\helpers\Html::mailto()

return string

格式化的结果。

asHtml() 公共 方法

将值格式化为 HTML 文本。 该值将使用 yii\helpers\HtmlPurifier 进行过滤,以避免 XSS 攻击。 如果你不想对值进行过滤,请使用 asRaw()

public string asHtml($value, $config null)
$value string

要格式化的值。

$config array|null

HTMLPurifier 类的配置。

return string

格式化的结果。

asImage() 公共 方法

将值格式化为 img 标签。

public string asImage($value, $options = [])
$value mixed

要格式化的值。

$options array

键值对形式的标签选项。见 yii\helpers\Html::img()

return string

格式化的结果。

asInteger() 公共 方法

通过移除小数部分将值格式化为整数。

从版本 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

如果输入值不是数字或格式化失败。

asIntegerStringFallback() 受保护 方法 (自版本 2.0.16 可用)

将值通过移除小数部分格式化为整数的回退函数。

protected string asIntegerStringFallback($value)
$value string|integer|float

要格式化的值。

return string

格式化的结果。

asLength() 公共 方法 (自版本 2.0.13 可用)

将值格式化为易读形式的长度,例如 12 meters。 如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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 或不包含所需信息时。

asNtext() 公共 方法

将值格式化为 HTML 编码的纯文本,并拆分换行符为新行。

public string asNtext($value)
$value string

要格式化的值。

return string

格式化的结果。

asOrdinal() 公共 方法

将值格式化为数字的序数值。

此函数需要安装 PHP intl extension

这个格式化程序不适用于非常大的数字。

public string asOrdinal($value)
$value mixed

要格式化的值

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值不是数字或格式化失败。

throws yii\base\InvalidConfigException

when the PHP intl extension is not available.

asParagraphs() 公共 方法

将值格式化为HTML编码的文本段落。 每个文本段落都包含在一个 <p> 标签中。 一个或多个连续的空行分为两段。

public string asParagraphs($value)
$value string

要格式化的值。

return string

格式化的结果。

asPercent() 公共 方法

将值格式化为带有 "%" 符号的百分比数字。

从版本 2.0.16 起,规范化后出现错误的数字使用回调函数格式化为字符串, 不支持 PHP intl extension。 对于非常大的数字,建议将它们以字符串传递,而不是使用科学记数法,否则输出可能是错误的。

public string asPercent($value, $decimals null, $options = [], $textOptions = [])
$value mixed

要格式化的值。这必须是一个小数,例如 0.75 将格式化为 75%

$decimals integer

小数点后的位数。 如果没有给出,则位数取决于输入值, 并且基于 NumberFormatter::MIN_FRACTION_DIGITSNumberFormatter::MAX_FRACTION_DIGITS 确定, 可以使用 $numberFormatterOptions 进行配置。 如果 PHP intl 扩展不可用,则默认值为 0。 如果要在 intl 可用和不可用的环境之间保持一致的行为, 则应在此处明确指定值。

$options array

数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。

$textOptions array

数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值不是数字或格式化失败。

asPercentStringFallback() 受保护 方法 (自版本 2.0.16 可用)

将值格式化为带 "%" 符号百分数的回退函数。

属性 $decimalSeparator 将用于表示小数点。 该值自动舍入为定义的十进制数字。

protected string asPercentStringFallback($value, $decimals null)
$value string|integer|float

要格式化的值。

$decimals integer

小数点后的位数。默认值为 0

return string

格式化的结果。

asRaw() 公共 方法

按原样格式化值,不进行任何格式化。 此方法只返回没有任何格式的参数。 唯一的例外是当值为 null 时,将使用 $nullDisplay 格式化。

public string asRaw($value)
$value mixed

要格式化的值。

return string

格式化的结果。

asRelativeTime() 公共 方法

将日期值与当前时间的时间间隔格式化为易读的形式。

此方法可以以三种不同的方式使用:

  1. 使用相对于 now 的时间戳。
  2. 使用相对于 $referenceTime 的时间戳。
  3. DateInterval 对象。
public string asRelativeTime($value, $referenceTime null)
$value integer|string|DateTime|DateInterval

要格式化的值。 支持以下类型的值:

  • 表示 UNIX 时间戳的整数
  • 可以供 DateTime object 解析的字符串。 时间戳假定在 $defaultTimeZone,除非给出一个明确的时区。
  • 一个 DateTime PHP 对象
  • 一个 PHP DateInterval 对象(正值时间间隔表示过去,负值时间间隔表示未来)
$referenceTime integer|string|DateTime

如果指定了该值,当 $value 不是 DateInterval 对象时, 该值将用作参考时间,而不是 now

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值无法计算为日期值。

asScientific() 公共 方法

将值格式化为科学数字。

public string asScientific($value, $decimals null, $options = [], $textOptions = [])
$value mixed

要格式化的值。

$decimals integer

小数点后的位数。 如果没有给出,则位数取决于输入值, 并且基于 NumberFormatter::MIN_FRACTION_DIGITSNumberFormatter::MAX_FRACTION_DIGITS 确定, 可以使用 $numberFormatterOptions 进行配置。 如果 PHP intl extension 不可用,默认值取决于您的PHP配置。 如果要在 intl 可用和不可用的环境之间保持一致的行为, 则应在此处明确指定值。

$options array

数字格式化程序的可选配置。此参数将与 $numberFormatterOptions 合并。

$textOptions array

数字格式化程序的可选配置。此参数将与 $numberFormatterTextOptions 合并。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值不是数字或格式化失败。

asShortLength() 公共 方法 (自版本 2.0.13 可用)

将值格式化为易读形式的长度,例如 12 m。 这是 asLength() 的缩写形式。

如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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 或不包含所需信息时。

asShortSize() 公共 方法

将以字节为单位的值格式化为易读形式的大小,例如 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

如果输入值不是数字或格式化失败。

asShortWeight() 公共 方法 (自版本 2.0.13 可用)

将值格式化为易读形式的重量,例如 12 kg。 这是 asWeight() 的缩写形式。

如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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 或不包含所需信息时。

asSize() 公共 方法

将值格式化为易读形式的字节大小,例如 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

如果输入值不是数字或格式化失败。

asSpellout() 公共 方法

将值格式化为数字拼写。

此函数需要安装 PHP intl extension

这个格式化程序不适用于非常大的数字。

public string asSpellout($value)
$value mixed

要格式化的值

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值不是数字或格式化失败。

throws yii\base\InvalidConfigException

PHP intl extension 不可用时。

asText() 公共 方法

将值格式化为 HTML 编码的纯文本。

public string asText($value)
$value string

要格式化的值。

return string

格式化的结果。

asTime() 公共 方法

将值格式化为时间。

参见 $timeFormat.

public string asTime($value, $format null)
$value integer|string|DateTime

要格式化的值。 支持以下类型的值:

  • 表示 UNIX 时间戳的整数。UNIX 时间戳的定义始终为 UTC。
  • 可以供 DateTime object 解析的字符串。 时间戳假定在 $defaultTimeZone,除非给出一个明确的时区。
  • 一个 DateTime 对象。 您可以为 DateTime 对象设置时区,以指定源时区。

在格式化之前,格式化程序将根据 $timeZone 转换日期值。 如果不应执行时区转换,则需要将 $defaultTimeZone$timeZone 设置为相同的值。

$format string

用于将值转换为日期字符串的格式。 如果为 null,将使用 $timeFormat

这可以是 "short","medium","long" 或 "full",其表示不同长度的预设格式。 它也可以是 ICU manual 中指定的自定义格式。

这也可以是一个前缀为 php: 的字符串, 表示可以由 PHP date() 函数识别的格式。

return string

格式化的结果。

throws yii\base\InvalidArgumentException

如果输入值无法计算为日期值。

throws yii\base\InvalidConfigException

如果日期格式无效。

asTimestamp() 公共 方法

将浮点数中的日期,时间或日期时间格式化为 UNIX 时间戳(自1970-01-01以来的秒数)。

public string asTimestamp($value)
$value integer|string|DateTime

要格式化的值。 支持以下类型的值:

return string

格式化的结果。

asUrl() 公共 方法

将值格式化为超链接。

public string asUrl($value, $options = [])
$value mixed

要格式化的值。

$options array

键值对形式的标签选项。见 yii\helpers\Html::a()

return string

格式化的结果。

asWeight() 公共 方法 (自版本 2.0.13 可用)

将值格式化为易读形式的重量,例如 12 kilograms。 如果需要将值单位更改为最小单位的乘数, 并使 $systemOfUnitsUNIT_SYSTEM_METRICUNIT_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 或不包含所需信息时。

createNumberFormatter() 受保护 方法

创建基于给定类型和格式的数字格式。

您可以重写此方法创建基于模式的数字格式化程序。

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

创建的格式化程序实例

format() 公共 方法

根据给定的格式类型格式化值。 此方法将调用此类中可用的 "as" 方法来进行格式化。例如,如果格式为 "html", 将使用 asHtml()。格式名称不区分大小写。 对于类型 "xyz",将使用方法 "asXyz"。

public string format($value, $format)
$value mixed

要格式化的值。

$format string|array|Closure

值的格式, 例如:"html","text" 或者一个匿名函数返回的格式值。

要指定格式化方法的其他参数,可以使用数组。 数组的第一个元素指定格式名称, 而其余元素将用作格式化方法的参数。 例如,['date', 'Y-m-d'] 的格式将导致调用 asDate($value, 'Y-m-d')

匿名函数应为:function($value, $formatter), 其中$value 是应该格式化的值,$formatter 是 Formatter 类的一个实例, 可用于调用其他格式化函数。 从版本 2.0.13 开始,可以使用匿名函数。

return string

格式化结果。

throws yii\base\InvalidArgumentException

如果此类不支持格式类型。

init() 公共 方法

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()
isNormalizedValueMispresented() 受保护 方法 (自版本 2.0.16 可用)

检查给定值及其规范化版本的值是否不同。

protected boolean isNormalizedValueMispresented($value, $normalizedValue)
$value string|float|integer
$normalizedValue float|integer
normalizeDatetimeValue() 受保护 方法

将给定的日期时间值规范化为可由各种日期/时间格式化方法采用的 DateTime 对象。

protected DateTime|array normalizeDatetimeValue($value, $checkDateTimeInfo false)
$value integer|string|DateTime

要标准化的日期时间值。 支持以下类型的值:

$checkDateTimeInfo boolean

是否还检查日期/时间值是否附加了一些时间和日期信息。 默认为 false。如果为 true,则该方法将返回一个数组, 其中第一个元素是标准化时间戳,第二个是表示时间戳是否具有时间信息的布尔值, 第三个是表示时间戳是否具有日期信息的布尔值。 此参数自版本 2.0.1 起可用。

return DateTime|array

规范化的日期时间值。 从版本 2.0.1 开始,如果 $checkDateTimeInfo 为真,这会返回一个数组。 数组的第一个元素是标准化的时间戳,第二个元素是一个布尔值, 表示时间戳是时间信息还是日期值。 从版本 2.0.12 开始,该数组具有第三个为布尔值的元素, 指示时间戳是否具有日期信息,或者它只是一个时间值。

throws yii\base\InvalidArgumentException

如果输入值无法计算为日期值。

normalizeNumericStringValue() 受保护 方法 (自版本 2.0.16 可用)

规范化数字字符串值。

protected string normalizeNumericStringValue($value)
$value string
return string

规范化数字字符串值

normalizeNumericValue() 受保护 方法

规范化数字输入值。

  • 所有的 empty 将是 0
  • 一个 numeric 字符串将转化为浮点数
  • 如果它是 numeric,则返回其它所有内容, 否则抛出异常。
protected float|integer normalizeNumericValue($value)
$value mixed

输入的值

return float|integer

规范化的数值

throws yii\base\InvalidArgumentException

如果输入值不是数字。