downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

NumberFormatter::formatCurrency> <NumberFormatter
Last updated: Fri, 14 Aug 2009

view this page in

NumberFormatter::create

numfmt_create

NumberFormatter::__construct

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

NumberFormatter::create -- numfmt_create -- NumberFormatter::__constructCrée un formateur de nombre

Description

Style orienté objet (méthode)

static NumberFormatter NumberFormatter::create ( string $locale , int $style [, string $pattern ] )

Style procédural

NumberFormatter numfmt_create ( string $locale , int $style [, string $pattern ] )

Style orienté objet (constructeur)

NumberFormatter::__construct ( string $locale , int $style [, string $pattern ] )

Crée un formateur de nombre

Liste de paramètres

locale

La locale avec laquelle les nombres seront formatés. e.g. en_CA.

style

Le style de format, une des constantes de style de format. Si NumberFormatter::PATTERN_DECIMAL ou NumberFormatter::PATTERN_RULEBASED est utilisé alors le format de nombre est ouvert avec le modèle fourni, qui doit être compatible avec la syntaxe décrite par la » documentation ICU DecimalFormat ou » documentation ICU RuleBasedNumberFormat, respectivement.

pattern

La chaîne de modèle, en fonction du style de format choisi.

Valeurs de retour

Retourne un objet NumberFormatter ou FALSE en cas d'erreur.

Exemples

Exemple #1 Exemple avec numfmt_create::create(), Style procédural

<?php
$fmt 
numfmt_create'de_DE'NumberFormatter::DECIMAL );
echo 
numfmt_format($fmt1234567.891234567890000)."\n";
$fmt numfmt_create'it'NumberFormatter::SPELLOUT );
echo 
numfmt_format($fmt1142)."\n";
?>

Exemple #2 Exemple avec numfmt_create::create(), style POO

<?php
$fmt 
= new NumberFormatter'de_DE'NumberFormatter::DECIMAL );
echo 
$fmt->format(1234567.891234567890000)."\n";
$fmt = new NumberFormatter'it'NumberFormatter::SPELLOUT );
echo 
$fmt->format(1142)."\n";
?>

L'exemple ci-dessus va afficher :

1.234.567,891
millicentoquarantadue

Voir aussi



add a note add a note User Contributed Notes
NumberFormatter::create
F. Poirotte
15-Nov-2009 04:26
When formatting durations using the NumberFormatter::DURATION type, you may also need to use NumberFormatter::setTextAttribute to get the desired output.

<?php

$fmt
= new NumberFormatter('en', NumberFormatter::DURATION);
// Outputs: string(7) "3:25:45"
var_dump($fmt->format(12345));

// "%in-numerals" is the default ruleset, so this results in the same as above.
$fmt->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%in-numerals");
// Outputs: string(7) "3:25:45"
var_dump($fmt->format(12345));

$fmt->setTextAttribute(NumberFormatter::DEFAULT_RULESET, "%with-words");
// Outputs: string(31) "3 hours, 25 minutes, 45 seconds"
var_dump($fmt->format(12345));

$fmt2 = new NumberFormatter('fr', NumberFormatter::DURATION);
// Outputs: string(7) "12 345"
// See notes below.
var_dump($fmt2->format(12345));

?>

This is a little counter-intuitive because there is not much doc available about the DURATION type.

Also, as far as I can tell, only the English (en) locale has support for the "%in-numerals" & "%with-words" rulesets. Other locales seem to simply format the input as if the DECIMAL type had been used (at least using "fr" or "de" as the target locale).

One way to provide that feature across different locales is to extract the ruleset implicitely used by NumberFormatter::DURATION and adapt it for the locales you're targetting. Use NumberFormatter::getPattern to extract the ruleset.

NumberFormatter::formatCurrency> <NumberFormatter
Last updated: Fri, 14 Aug 2009
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites