このチュートリアルは、数字、日付、通貨などの複雑なデータをローカライズすることに焦点を当てた、PHP INTL拡張の前の紹介に基づいています。 飛び込みましょう!
重要な概念:
NumberFormatter
メソッドを使用して簡単に実現できます。
NumberFormatter
formatCurrency
IntlCalendar
ロケールコード(例: 'de_de'、 'en_us')は、フォーマットスタイルを決定します。 さまざまなフォーマットスタイル(小数、通貨、期間など)が利用可能です
スタイルと属性のフォーマット:NumberFormatter
$numberFormatter = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL ); var_dump( $numberFormatter->format(123456789) ); // Output: string(11) "123.456.789" $numberFormatter = new NumberFormatter( 'en_US', NumberFormatter::DECIMAL ); var_dump( $numberFormatter->format(123456789) ); // Output: string(11) "123,456,789" $numberFormatter = new NumberFormatter( 'ar', NumberFormatter::DECIMAL ); var_dump( $numberFormatter->format(123456789) ); // Output: string(22) "١٢٣٬٤٥٦٬٧٨٩" $numberFormatter = new NumberFormatter( 'bn', NumberFormatter::DECIMAL ); var_dump( $numberFormatter->format(123456789) ); // Output: string(30) "১২,৩৪,৫৬,৭৮৯"
丸め動作は制御できます:
および
スタイルは、以前に導入されたスタイルもここにも適用されます。 フォーマットされた文字列を数字に戻す解析は、$nf = new NumberFormatter( 'en_US', NumberFormatter::DECIMAL ); $nf->setAttribute(NumberFormatter::FRACTION_DIGITS, 2); var_dump( $nf->format(1234.56789) ); // Output: string(8) "1,234.57" var_dump( $nf->format(1234) ); // Output: string(8) "1,234.00"
$nf = new NumberFormatter( 'en_US', NumberFormatter::DECIMAL ); $nf->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, 2); $nf->setAttribute(NumberFormatter::ROUNDING_MODE, NumberFormatter::ROUND_CEILING); var_dump($nf->format(1234.5678) ); // Output: string(8) "1,234.57" $nf->setAttribute(NumberFormatter::ROUNDING_MODE, NumberFormatter::ROUND_DOWN); var_dump($nf->format(1234.5678) ); // Output: string(8) "1,234.56"
SPELLOUT
通貨としての数値のフォーマットは簡単です:DURATION
parse
メソッドは通貨記号の取得を簡素化します:
タイムゾーンとカレンダー:
$nf = new NumberFormatter( 'en_US', NumberFormatter::CURRENCY ); var_dump( $nf->formatCurrency(1234.56789, "USD" ) ); // Output: string(9) ",234.57"
getSymbol
タイムゾーンを管理し、機能性をミラーリングします。
$nf = new NumberFormatter( 'en_US', NumberFormatter::CURRENCY ); var_dump( $nf->formatCurrency(1234.56789, $nf->getSymbol(NumberFormatter::INTL_CURRENCY_SYMBOL)) ); // Output: string(9) ",234.57" $nf = new NumberFormatter( 'fr_FR', NumberFormatter::CURRENCY ); var_dump( $nf->formatCurrency(1234.56789, $nf->getSymbol(NumberFormatter::INTL_CURRENCY_SYMBOL)) ); // Output: string(14) "1 234,57 €"
日付ナビゲーションは直感的です:
IntlTimeZone
結論:DateTimeZone
IntlCalendar
以上がPHP-INTLを使用した日付、通貨、および数値をローカライズしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。