1

I've been reading Yii's docs about CNumberFormatter and I didn't found any documentation about formatting a number in an ordinal way. So my question is:

Is it entirely possible to format a number using Yii's built-in CNumberFormatter class in an ordinal manner.

Example: $number = 1 -> format to ordinal -> returns `1st`.

If yes, how?

Kumar V
  • 8,810
  • 9
  • 39
  • 58
jhnferraris
  • 1,361
  • 1
  • 12
  • 34

1 Answers1

0

Extend your own formatter class, add code from Display numbers with ordinal suffix in PHP:

<?php    
class CustomFormatter extends CFormatter {

    public function formatOrdinal($value) {
        $ends = array('th','st','nd','rd','th','th','th','th','th','th');
        if (($value%100) >= 11 && ($value%100) <= 13)
           return $value. 'th';
        else
           return $value. $ends[$value % 10];
    }
}

Implement it in Yii's main.php config file:

// application components
'components' => array(
    'format' => array(
        'class' => 'application.extensions.CustomFormatter',
     ),

     ...
Community
  • 1
  • 1
Samuel Liew
  • 76,741
  • 107
  • 159
  • 260