@formatjs/intl-utils

Smartly determine best unit for relative time format

the package is rather renamed to @formatjs/ecma-abstract with some changes in functionality (primarily selectUnit is removed and we don't plan to make any further changes to this package
Last updated 5 years ago by pyrocat .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ npm install @formatjs/intl-utils 
SYNC missed versions from official npm registry.

Intl Utils

Provide i18n utilities.

npm Version

API

selectUnit

This function determines the best fit unit based on a specific set of customizable thresholds.

function selectUnit(
  from: Date | number,
  to: Date | number = Date.now(),
  thresholds = DEFAULT_THRESHOLDS
): {value: number; unit: Unit};

where thresholds has the shape of:

interface Threshold {
  second: number;
  minute: number;
  hour: number;
  day: number;
}

month & year are based on calendar, thus not customizable.

Example:

import {selectUnit} from '@formatjs/intl-utils';
selectUnit(Date.now() - 1000); // { value: -1, unit: 'second' }
selectUnit(Date.now() - 44000); // { value: -44, unit: 'second' }
selectUnit(Date.now() - 50000); // { value: 1, unit: 'minute' }

Caveats

selectUnit is meant to be a stepping stone from the old IntlRelativeFormat to the officially spec-ed Intl.RelativeTimeFormat. Therefore we don't recommend using this for an extended period of time because of ambiguous editorial issues such as:

  • From 2019/01/01 -> 2018/11/01 can technically be last year, 2 months ago or a quarter ago.

  • From 2019/01/02 6am to 2019/01/01 11pm can also be 7 hours ago or yesterday. Timezone further complicates the issue.

The examples above have not even tackled the differences in non-Gregorian calendars. There is an issue opened upstream in the spec that potentially introduces a best fit algorithm. Therefore, we recommend that you implement your own version of selectUnit that matches your editorial expectation. This will be removed in future releases.

Current Tags

  • 3.8.4                                ...           latest (4 years ago)
  • 3.6.2-alpha.0                                ...           next (4 years ago)

64 Versions

  • 3.8.4 [deprecated]           ...           4 years ago
  • 3.8.3 [deprecated]           ...           4 years ago
  • 3.8.2 [deprecated]           ...           4 years ago
  • 3.8.1 [deprecated]           ...           4 years ago
  • 3.8.0 [deprecated]           ...           4 years ago
  • 3.7.0 [deprecated]           ...           4 years ago
  • 3.6.2-alpha.0 [deprecated]           ...           4 years ago
  • 3.6.0 [deprecated]           ...           4 years ago
  • 3.5.0 [deprecated]           ...           4 years ago
  • 3.4.1 [deprecated]           ...           4 years ago
  • 3.4.0 [deprecated]           ...           4 years ago
  • 3.3.1 [deprecated]           ...           4 years ago
  • 3.3.0 [deprecated]           ...           4 years ago
  • 3.2.0 [deprecated]           ...           4 years ago
  • 3.1.0 [deprecated]           ...           4 years ago
  • 3.0.1 [deprecated]           ...           4 years ago
  • 3.0.0 [deprecated]           ...           4 years ago
  • 2.3.0 [deprecated]           ...           4 years ago
  • 2.2.5 [deprecated]           ...           5 years ago
  • 2.2.4 [deprecated]           ...           5 years ago
  • 2.2.3 [deprecated]           ...           5 years ago
  • 2.2.2 [deprecated]           ...           5 years ago
  • 2.2.1 [deprecated]           ...           5 years ago
  • 2.2.0 [deprecated]           ...           5 years ago
  • 2.1.0 [deprecated]           ...           5 years ago
  • 2.0.4 [deprecated]           ...           5 years ago
  • 2.0.3 [deprecated]           ...           5 years ago
  • 2.0.2 [deprecated]           ...           5 years ago
  • 2.0.1 [deprecated]           ...           5 years ago
  • 2.0.0 [deprecated]           ...           5 years ago
  • 1.6.0 [deprecated]           ...           5 years ago
  • 1.5.0 [deprecated]           ...           5 years ago
  • 1.4.4 [deprecated]           ...           5 years ago
  • 1.4.3 [deprecated]           ...           5 years ago
  • 1.4.2 [deprecated]           ...           5 years ago
  • 1.4.1 [deprecated]           ...           5 years ago
  • 1.4.0 [deprecated]           ...           5 years ago
  • 1.3.0 [deprecated]           ...           5 years ago
  • 1.2.0 [deprecated]           ...           5 years ago
  • 1.1.1 [deprecated]           ...           5 years ago
  • 1.1.0 [deprecated]           ...           5 years ago
  • 1.0.1 [deprecated]           ...           5 years ago
  • 1.0.0 [deprecated]           ...           5 years ago
  • 0.7.0 [deprecated]           ...           5 years ago
  • 0.6.1 [deprecated]           ...           5 years ago
  • 0.6.0 [deprecated]           ...           5 years ago
  • 0.5.6 [deprecated]           ...           5 years ago
  • 0.5.5 [deprecated]           ...           5 years ago
  • 0.5.4 [deprecated]           ...           5 years ago
  • 0.5.3 [deprecated]           ...           5 years ago
  • 0.5.2 [deprecated]           ...           5 years ago
  • 0.5.1 [deprecated]           ...           5 years ago
  • 0.5.0 [deprecated]           ...           5 years ago
  • 0.4.4 [deprecated]           ...           5 years ago
  • 0.4.3 [deprecated]           ...           5 years ago
  • 0.4.2 [deprecated]           ...           5 years ago
  • 0.4.0 [deprecated]           ...           5 years ago
  • 0.3.4 [deprecated]           ...           5 years ago
  • 0.3.3 [deprecated]           ...           5 years ago
  • 0.3.2 [deprecated]           ...           5 years ago
  • 0.3.1 [deprecated]           ...           5 years ago
  • 0.3.0 [deprecated]           ...           5 years ago
  • 0.2.1 [deprecated]           ...           5 years ago
  • 0.2.0 [deprecated]           ...           5 years ago

© 2010 - cnpmjs.org x YWFE | Home | YWFE