PHP 8.4.1 Released!

NumberFormatter::setPattern

numfmt_set_pattern

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::setPattern -- numfmt_set_patternEstablecer el patrón de un formateador

Descripción

Estilo orientado a objetos

public NumberFormatter::setPattern(string $pattern): bool

Estilo por procedimientos

numfmt_set_pattern(NumberFormatter $fmt, string $pattern): bool

Establece el patrón usado por el formateador. No se puede usar en formateadores basados en reglas.

Parámetros

fmt

Un objeto de la clase NumberFormatter.

pattern

Un patrón con la sintaxis descrita en la » documentación de DecimalFormat de ICU.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ejemplos

Ejemplo #1 Ejemplo de numfmt_set_pattern()

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
echo
"Patrón: ".numfmt_get_pattern($fmt)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
numfmt_set_pattern($fmt, "#0.# kg");
echo
"Patrón: ".numfmt_get_pattern($fmt)."\n";
echo
numfmt_format($fmt, 1234567.891234567890000)."\n";
?>

Ejemplo #2 OO example

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
echo
"Patrón: ".$fmt->getPattern()."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
$fmt->setPattern("#0.# kg");
echo
"Patrón: ".$fmt->getPattern()."\n";
echo
$fmt->format(1234567.891234567890000)."\n";
?>

El resultado del ejemplo sería:

Patrón: #,##0.###
1.234.567,891
Patrón: #0.# kg
1234567,9 kg

Ver también

add a note

User Contributed Notes 2 notes

up
18
Crash
4 years ago
If you're looking for the pattern syntax, their documentation is here: http://unicode.org/reports/tr35/tr35-numbers.html#Number_Format_Patterns
up
0
Anonymous
5 years ago
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
To Top