NumberFormatter::setPattern
numfmt_set_pattern
(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)
NumberFormatter::setPattern -- numfmt_set_pattern — Set formatter pattern
Description
Object oriented style
public
bool
NumberFormatter::setPattern
( string
$pattern
)Procedural style
Set the pattern used by the formatter. Can not be used on a rule-based formatter.
Parameters
-
fmt
-
NumberFormatter object.
-
pattern
-
Pattern in syntax described in » ICU DecimalFormat documentation.
Return Values
Returns TRUE
on success or FALSE
on failure.
Examples
Example #1 numfmt_set_pattern() example
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo "Pattern: ".numfmt_get_pattern($fmt)."\n";
echo numfmt_format($fmt, 1234567.891234567890000)."\n";
?>
Example #2 OO example
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo "Pattern: ".$fmt->getPattern()."\n";
echo $fmt->format(1234567.891234567890000)."\n";
?>
The above example will output:
Pattern: #,##0.### 1.234.567,891 Pattern: #0.# kg 1234567,9 kg
See Also
- numfmt_get_error_code() - Get formatter's last error code.
- numfmt_create() - Create a number formatter
- numfmt_get_pattern() - Get formatter pattern
- PHP Руководство
- Функции по категориям
- Индекс функций
- Справочник функций
- Поддержка языков и кодировок
- Internationalization Functions
- Функция NumberFormatter::create() - Create a number formatter
- Функция NumberFormatter::formatCurrency() - Format a currency value
- Функция NumberFormatter::format() - Format a number
- Функция NumberFormatter::getAttribute() - Get an attribute
- Функция NumberFormatter::getErrorCode() - Get formatter's last error code.
- Функция NumberFormatter::getErrorMessage() - Get formatter's last error message.
- Функция NumberFormatter::getLocale() - Get formatter locale
- Функция NumberFormatter::getPattern() - Get formatter pattern
- Функция NumberFormatter::getSymbol() - Get a symbol value
- Функция NumberFormatter::getTextAttribute() - Get a text attribute
- Функция NumberFormatter::parseCurrency() - Parse a currency number
- Функция NumberFormatter::parse() - Parse a number
- Функция NumberFormatter::setAttribute() - Set an attribute
- Функция NumberFormatter::setPattern() - Set formatter pattern
- Функция NumberFormatter::setSymbol() - Set a symbol value
- Функция NumberFormatter::setTextAttribute() - Set a text attribute
Коментарии
setPattern appears to influence only the behavior of the format method, not the parse method of the NumberFormatter object.
$pattern = '#,##0';
$frmtr = NumberFormatter::create('en-US', NumberFormatter::DECIMAL);
$frmtr->setPattern($pattern);
echo $frmtr->parse('12.345');
// returns 12
If you're looking for the pattern syntax, their documentation is here: http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns