# @formatjs/intl-relativetimeformat

> Formats JavaScript dates to relative time strings.

Latest version **12.3.15** (published 2026-09-12) · MIT license · 0 weekly downloads

## Install

```sh
npm install @formatjs/intl-relativetimeformat
pnpm add @formatjs/intl-relativetimeformat
yarn add @formatjs/intl-relativetimeformat
bun add @formatjs/intl-relativetimeformat
```

## Health

**Score 75/100 (B)** — status: active.

Positive: has types; esm support; no vulnerabilities; has provenance; recently updated; high maintenance score; popular repo.

Warnings: low downloads; large bundle.

## Facts

| | |
|---|---|
| Version | 12.3.15 |
| Published | 2026-09-12 |
| First published | 2019-06-05 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM |
| Dependencies | 1 |
| Unpacked size | 11.8 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Provenance | attested (GitHub Actions) |
| GitHub stars | 14749 |
| Author | Long Ho <holevietlong@gmail.com> |
| Maintainers | longlho, redonkulus, pyrocat |
| Keywords | date, format, i18n, intl, moment, relative, time |

## Links

- npm: https://www.npmjs.com/package/@formatjs/intl-relativetimeformat
- Repository: git@github.com:formatjs/formatjs
- Homepage: https://github.com/formatjs/formatjs
- Issues: https://github.com/formatjs/formatjs/issues
- npm.io page: https://npm.io/package/@formatjs/intl-relativetimeformat

## Dependencies (1)

- [@formatjs/intl-localematcher](https://npm.io/package/@formatjs/intl-localematcher.md) 0.9.0

## Alternatives

- [@js-joda/timezone](https://npm.io/package/@js-joda/timezone.md) — 383.4K weekly downloads
- [chartjs-adapter-moment](https://npm.io/package/chartjs-adapter-moment.md) — 210.8K weekly downloads
- [strftime](https://npm.io/package/strftime.md) — 171.2K weekly downloads
- [vue-flatpickr-component](https://npm.io/package/vue-flatpickr-component.md) — 115.8K weekly downloads
- [timepicker](https://npm.io/package/timepicker.md) — 51.0K weekly downloads

## Recent versions

- 12.3.15 (latest) — 2026-09-12
- 6.0.4-alpha.0 (next) — 2020-07-14
- 12.3.14 — 2026-09-12
- 12.3.13 — 2026-07-16
- 12.3.12 — 2026-07-11
- 12.3.11 — 2026-07-09
- 12.3.10 — 2026-06-04
- 12.3.9 — 2026-05-27
- 12.3.8 — 2026-05-19
- 12.3.7 — 2026-05-15
- 12.3.6 — 2026-05-12
- 12.3.5 — 2026-05-05
- 12.3.4 — 2026-04-29
- 12.3.3 — 2026-04-24
- 12.3.2 — 2026-04-13
- … 208 more at https://npm.io/package/@formatjs/intl-relativetimeformat/versions

## README

# FormatJS

[![Unit Tests](https://github.com/formatjs/formatjs/actions/workflows/tests.yml/badge.svg)](https://github.com/formatjs/formatjs/actions/workflows/tests.yml)
[![Slack FormatJS](https://img.shields.io/badge/slack-@formatjs-green.svg?logo=slack)](https://join.slack.com/t/formatjs/shared_invite/enQtNjM2MjM4NjE4ODIxLTMyMWE0YTNhMTlmMzZlNzJlNjEzMWY0YjM2ODUxYjlmNDE2YzQyMDIxZDg3Y2Q5YWNlMzhhYzRiNDk0OGQwNGI)
[![Sauce Browser Matrix Status](https://app.saucelabs.com/browser-matrix/formatjsproject.svg)](https://app.saucelabs.com/u/formatjsproject)

This repository is the home of [FormatJS](http://formatjs.github.io/) and related libraries.

**Slack:** Join us on Slack at [formatjs.slack.com](https://formatjs.slack.com/) for help, general conversation and more 💬🎊🎉
You can sign-up using this [invitation link](https://join.slack.com/t/formatjs/shared_invite/enQtNjYwMzE4NjM1MDQzLTA5NDE1Y2Y1ZWNiZWI1YTU5MGUxY2M0YjA4NWNhMmU3YTRjZmQ3MTE3NzJmOTAxMWRmYWE1ZTdkMmYzNzA5Y2M).

## Development

See [CONTRIBUTING.md](CONTRIBUTING.md#Development) for instructions.

## Published Packages

| Package                                                                                                | Version                                                                 | Changelog                                                             | License                                                                       |
| ------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- | --------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [@formatjs/cli](https://www.npmjs.com/package/@formatjs/cli)                                           | ![version](https://badgen.net/npm/v/@formatjs/cli)                      | [CHANGELOG](packages/cli/CHANGELOG.md)                                | ![license](https://badgen.net/npm/license/@formatjs/cli)                      |
| [@formatjs/cli-lib](https://www.npmjs.com/package/@formatjs/cli-lib)                                   | ![version](https://badgen.net/npm/v/@formatjs/cli-lib)                  | [CHANGELOG](packages/cli-lib/CHANGELOG.md)                            | ![license](https://badgen.net/npm/license/@formatjs/cli-lib)                  |
| [@formatjs/icu-messageformat-parser](https://www.npmjs.com/package/@formatjs/icu-messageformat-parser) | ![version](https://badgen.net/npm/v/@formatjs/icu-messageformat-parser) | [CHANGELOG](packages/@formatjs/icu-messageformat-parser/CHANGELOG.md) | ![license](https://badgen.net/npm/license/@formatjs/icu-messageformat-parser) |
| [@formatjs/intl-datetimeformat](https://www.npmjs.com/package/@formatjs/intl-datetimeformat)           | ![version](https://badgen.net/npm/v/@formatjs/intl-datetimeformat)      | [CHANGELOG](packages/intl-datetimeformat/CHANGELOG.md)                | ![license](https://badgen.net/npm/license/@formatjs/intl-datetimeformat)      |
| [@formatjs/intl-displaynames](https://www.npmjs.com/package/@formatjs/intl-displaynames)               | ![version](https://badgen.net/npm/v/@formatjs/intl-displaynames)        | [CHANGELOG](packages/intl-displaynames/CHANGELOG.md)                  | ![license](https://badgen.net/npm/license/@formatjs/intl-displaynames)        |
| [@formatjs/intl-getcanonicallocales](https://www.npmjs.com/package/@formatjs/intl-getcanonicallocales) | ![version](https://badgen.net/npm/v/@formatjs/intl-getcanonicallocales) | [CHANGELOG](packages/intl-getcanonicallocales/CHANGELOG.md)           | ![license](https://badgen.net/npm/license/@formatjs/intl-getcanonicallocales) |
| [@formatjs/intl-listformat](https://www.npmjs.com/package/@formatjs/intl-listformat)                   | ![version](https://badgen.net/npm/v/@formatjs/intl-listformat)          | [CHANGELOG](packages/intl-listformat/CHANGELOG.md)                    | ![license](https://badgen.net/npm/license/@formatjs/intl-listformat)          |
| [@formatjs/intl-locale](https://www.npmjs.com/package/@formatjs/intl-locale)                           | ![version](https://badgen.net/npm/v/@formatjs/intl-locale)              | [CHANGELOG](packages/intl-locale/CHANGELOG.md)                        | ![license](https://badgen.net/npm/license/@formatjs/intl-locale)              |
| [@formatjs/intl-localematcher](https://www.npmjs.com/package/@formatjs/intl-localematcher)             | ![version](https://badgen.net/npm/v/@formatjs/intl-localematcher)       | [CHANGELOG](packages/intl-localematcher/CHANGELOG.md)                 | ![license](https://badgen.net/npm/license/@formatjs/intl-localematcher)       |
| [@formatjs/intl-numberformat](https://www.npmjs.com/package/@formatjs/intl-numberformat)               | ![version](https://badgen.net/npm/v/@formatjs/intl-numberformat)        | [CHANGELOG](packages/intl-numberformat/CHANGELOG.md)                  | ![license](https://badgen.net/npm/license/@formatjs/intl-numberformat)        |
| [@formatjs/intl-pluralrules](https://www.npmjs.com/package/@formatjs/intl-pluralrules)                 | ![version](https://badgen.net/npm/v/@formatjs/intl-pluralrules)         | [CHANGELOG](packages/intl-pluralrules/CHANGELOG.md)                   | ![license](https://badgen.net/npm/license/@formatjs/intl-pluralrules)         |
| [@formatjs/intl-relativetimeformat](https://www.npmjs.com/package/@formatjs/intl-relativetimeformat)   | ![version](https://badgen.net/npm/v/@formatjs/intl-relativetimeformat)  | [CHANGELOG](packages/intl-relativetimeformat/CHANGELOG.md)            | ![license](https://badgen.net/npm/license/@formatjs/intl-relativetimeformat)  |
| [@formatjs/intl-segmenter](https://www.npmjs.com/package/@formatjs/intl-segmenter)                     | ![version](https://badgen.net/npm/v/@formatjs/intl-segmenter)           | [CHANGELOG](packages/intl-segmenter/CHANGELOG.md)                     | ![license](https://badgen.net/npm/license/@formatjs/intl-segmenter)           |
| [@formatjs/intl](https://www.npmjs.com/package/@formatjs/intl)                                         | ![version](https://badgen.net/npm/v/@formatjs/intl)                     | [CHANGELOG](packages/intl/CHANGELOG.md)                               | ![license](https://badgen.net/npm/license/@formatjs/intl)                     |
| [@formatjs/ts-transformer](https://www.npmjs.com/package/@formatjs/ts-transformer)                     | ![version](https://badgen.net/npm/v/@formatjs/ts-transformer)           | [CHANGELOG](packages/ts-transformer/CHANGELOG.md)                     | ![license](https://badgen.net/npm/license/@formatjs/ts-transformer)           |
| [babel-plugin-formatjs](https://www.npmjs.com/package/babel-plugin-formatjs)                           | ![version](https://badgen.net/npm/v/babel-plugin-formatjs)              | [CHANGELOG](packages/babel-plugin-formatjs/CHANGELOG.md)              | ![license](https://badgen.net/npm/license/babel-plugin-formatjs)              |
| [eslint-plugin-formatjs](https://www.npmjs.com/package/eslint-plugin-formatjs)                         | ![version](https://badgen.net/npm/v/eslint-plugin-formatjs)             | [CHANGELOG](packages/eslint-plugin-formatjs/CHANGELOG.md)             | ![license](https://badgen.net/npm/license/eslint-plugin-formatjs)             |
| [intl-messageformat](https://www.npmjs.com/package/intl-messageformat)                                 | ![version](https://badgen.net/npm/v/intl-messageformat)                 | [CHANGELOG](packages/intl-messageformat/CHANGELOG.md)                 | ![license](https://badgen.net/npm/license/intl-messageformat)                 |
| [react-intl](https://www.npmjs.com/package/react-intl)                                                 | ![version](https://badgen.net/npm/v/react-intl)                         | [CHANGELOG](packages/react-intl/CHANGELOG.md)                         | ![license](https://badgen.net/npm/license/react-intl)                         |
| [@formatjs/utils](https://www.npmjs.com/package/@formatjs/utils)                                       | ![version](https://badgen.net/npm/v/@formatjs/utils)                    | [CHANGELOG](packages/utils/CHANGELOG.md)                              | ![license](https://badgen.net/npm/license/@formatjs/utils)                    |

## Big Thanks

Cross-browser Testing Platform and Open Source <3 Provided by [Sauce Labs][saucelabs]

[lerna]: https://lerna.js.org/
[saucelabs]: https://saucelabs.com

---
_Source: https://npm.io/package/@formatjs/intl-relativetimeformat · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
