Skip to content

Convert human readable time-frame strings to milliseconds and vice versa, with support for i10n and operators!

Notifications You must be signed in to change notification settings

apteryxxyz/enhanced-ms

Folders and files

NameName
Last commit message
Last commit date
Mar 16, 2025
Mar 20, 2025
Jan 29, 2025
Feb 28, 2025
Mar 16, 2025
Mar 13, 2025
Jan 30, 2025
Mar 16, 2025
Mar 13, 2025
Jan 30, 2025
Mar 16, 2025
Feb 6, 2025
Jan 29, 2025
Jan 29, 2025
Jan 29, 2025

Repository files navigation

Enhanced MS

Convert milliseconds to human-readable duration strings and vice versa
npm install enhanced-ms
package version total downloads
enhanced-ms repo stars apteryxxyz followers discord shield

πŸ€” About

enhanced-ms is a flexible library for formatting milliseconds into human-readable durations and vice versa. It is an enhanced version of the popular ms with support for multiple inputs, localization, and more options.

πŸ“ Table of Contents

πŸ“¦ Installation

Install using your preferred package manager:

npm install enhanced-ms
pnpm add enhanced-ms
yarn add enhanced-ms

🧭 Comparison

As mentioned above, enhanced-ms is an enhanced version of the popular ms, so how does it compare?

Feature enhanced-ms ms pretty-ms itty-time
Convert Milliseconds to Duration βœ… βœ… βœ… βœ…
Convert Milliseconds to Multiple Duration Units βœ… ❌ ❌ ❌
Convert Duration to Milliseconds βœ… βœ… ❌ βœ…
Convert Multiple Duration Units to Milliseconds βœ… ❌ ❌ ❌
Localization Support βœ… ❌ ❌ ❌

🌐 Languages

The currently supported languages include:

Language Key
English (default) en
German de
Russian ru
Māori mi
Spanish es
Dutch nl
Italian it
French fr

You can help by adding support for more languages.

Make a pull request here.

πŸš€ Usage

Language and Default Options

The createMs function allows you to create a new instance of ms with a custom language and custom default options. This is useful if you want to use a different language or prefer different default options for parsing and formatting.

function createMs(options?: CreateMsOptions): typeof ms;
Option Type Description Default
language Locale | LanguageDefinition The language to use for parsing and formatting, if your preferred isn't supported, you can directly pass a language definition. en
formatOptions FormatOptions | FormatOptionsPreset The options to use for formatting. see below

Formatting Milliseconds to Duration

The ms function allows you to format a number of milliseconds to a duration string. Passing a number of milliseconds will return a duration string, if the number is invalid, it will return null. The milliseconds overloads also allows you to pass a FormatOptions object or a FormatOptionsPreset to customise the formatting.

function ms(milliseconds: number): string | null;
function ms(milliseconds: number, options: FormatOptions): string | null;
function ms(milliseconds: number, preset: FormatOptionsPreset): string | null;
Option Type Description Default
extends FormatOptionsPreset Extends the preset with the given options. none
hideUnitNames boolean Hide unit names from the output. false
useAbbreviations boolean Use abbreviations for unit names. false
includeZero boolean Include units with the value 0 in the output. false
includeMs boolean Include milliseconds in the output. false
includeSubMs boolean Include sub-millisecond units in the output. false
includedUnits ParseUnit[] Which units should be included in the output. ['year', 'day', 'hour', 'minute', 'second']
unitLimit number The maximum number of units to include in the output. -1
unitSeparator string The separator to use between units.
minimumDigits number The minimum number of digits for a unit, aka will pad with zeroes. 0
Preset Example
short 1m 30s
fullPrecision 10 seconds 100 milliseconds 100 microseconds 100 nanoseconds
colonNotation 00:01:30

Parsing Duration to Milliseconds

The ms function also allows you to parse a duration string (1 day, 3 weeks 4 days, etc). Passing a duration string will return a number of milliseconds, if no valid duration units are found, it will return 0.

function ms(duration: string): number;