ExpressionEngine Docs

# Number Formatter

- Usage
- API Reference

The Number Formatter is part of the Format Service and handles many common formatting needs for numeric content.

## Usage

### Bytes

    $display_size = ee('Format')->make('Number', 76752)->bytes();
    // 75<abbr title="Kilobytes">KB</abbr>

    $display_size = ee('Format')->make('Number', 76752)->bytes(FALSE);
    // 75 kilobytes

### Currency

    $money = ee('Format')->make('Number', 4736234.5)->currency();
    // $4,736,234.58 (presuming default / US locale in the PHP environment)

    $money = ee('Format')->make('Number', 4736234.58)->currency(['locale' => 'de_DE', 'currency' => 'EUR']);
    // 4.736.234,58 €

Warning: For the greatest accuracy, the PHP intl extension must be available (PHP’s default). Without it, the currency symbol may be placed in the wrong position for non-US locales. The fallback also relies on strfmon which is not available on all systems, such as Windows.

### Duration

    $duration = ee('Format')->make('Number', 112358)->duration();
    // 31:12:38

### Number Format

    $number = ee('Format')->make('Number, 12345.67890)->number_format();
    // 12,346

### Ordinal

    $ordinal = ee('Format')->make('Number', 43)->ordinal();
    // 43rd

### Spellout

    $written_check = ee('Format')->make('Number', 112358.13)->spellout();
    // one hundred twelve thousand three hundred fifty-eight point one three

    $written_check = ee('Format')->make('Number', 112358.13)->spellout(['capitalize' => 'ucwords']);
    // One Hundred Twelve Thousand Three Hundred Fifty-eight Point One Three

    $written_check = ee('Format')->make('Number', 112358.13)->spellout(['locale' => 'de_DE']);
    // einhundertzwölftausenddreihundertachtundfünfzig Komma eins drei

Warning: This method requires the PHP intl extension (enabled by default).

## API Reference

class `EllisLab\ExpressionEngine\Service\Formatter\Formats\Number`

- `bytes($abbr = TRUE, $include_markup = TRUE)`
- `currency($options = [])`
- `duration($options = [])`
- `number_format($options = [])`
- `ordinal($options = [])`
- `spellout($options = [])`

### `bytes($abbr = TRUE, $include_markup = TRUE)`

Formats a binary byte multiple into a human-readable measure of units, e.g. B, KB, MB, GB.

Parameter | Type | Description
--- | --- | ---
$abbr | `Bool` | (default: TRUE) Use the abbreviated form of the byte format
$include_markup | `Bool` | (default: TRUE) Output with `<abbr>` HTML. Only affects abbreviated forms.
Returns | `Object` | A Formatter object

### `currency($options = [])`

Formats as currency. Greatest accuracy requires the PHP intl extension to be available

Parameter | Type | Description
--- | --- | ---
$options | `Array` | (string) currency code (USD, EUR, etc.) (string) decimals decimal precision (default based on locale) (string) locale (default: en_US.UTF-8)
Returns | `Object` | A Formatter object

### `duration($options = [])`

Formats as a duration using a rule-based format, e.g.: hh:mm:ss, mm:ss, or ss sec.

Parameter | Type | Description
--- | --- | ---
$options | `Array` | (string) locale (default: en_US.UTF-8)
Returns | `Object` | A Formatter object

### `number_format($options = [])`

Formats with a number using typical options, e.g. `12,345.68`.

Parameter | Type | Description
--- | --- | ---
$options | `Array` | (int) decimals decimal precision (default: 0) (string) decimal_point character to use as the decimal separator (default: `.`) (string) thousands_separator character to use as the thousands separator (default: `,`)
Returns | `Object` | A Formatter object

### `ordinal($options = [])`

Formats with an ordinal suffix, e.g. `127th`. Locales other than English require the PHP intl extension.

Parameter | Type | Description
--- | --- | ---
$options | `Array` | (string) locale (default: en_US.UTF-8)
Returns | `Object` | A Formatter object

### `spellout($options = [])`

Spell out the number as words. Requires the PHP intl extension.

Parameter | Type | Description
--- | --- | ---
$options | `Array` | (string) capitalize ‘ucfirst’ or ‘ucwords’ (string) locale (default: en_US.UTF-8)
Returns | `Object` | A Formatter object