5

如果我想将给定的数字显示为序数,我会这样做:

<?php
    // Needs 'php5-intl' package to be installed on Debian/Ubuntu

    $set_format = numfmt_create( 'en_US', NumberFormatter::ORDINAL );

    // '3' is displayed as '3rd'
    echo numfmt_format( $set_format, 3 );

?>

但是,如果我想使用内置的 PHP 函数/类将给定的数字显示为单词形式的序数(例如,第一、第二、第三等),我该怎么做?可能吗?NumberFormatter

相关链接:

4

1 回答 1

22

您想使用SPELLOUT格式样式,而不是ORDINAL.

下一个问题是如何告诉格式化程序使用您感兴趣的特定规则集;即%spellout-ordinal. 这可以通过使用来完成setTextAttribute()

例子

$formatter = new NumberFormatter('en_US', NumberFormatter::SPELLOUT);
$formatter->setTextAttribute(NumberFormatter::DEFAULT_RULESET,
                             "%spellout-ordinal");

for ($i = 1; $i <= 5; $i++) {
    echo $formatter->format($i) . PHP_EOL;
}

输出

first
second
third
fourth
fifth
于 2013-10-16T19:23:34.267 回答