Package Exports
- type-better-ms
- type-better-ms/package.json
Readme
BetterMS ⏱️
A enhanced, type-safe time conversion library for Node.js and browsers. Convert between milliseconds and human-readable time strings with full TypeScript support.
Features
- 🚀 Type Safe: Full TypeScript support with strict types
- 📦 Zero Dependencies: Lightweight and self-contained
- 🔄 Bidirectional: Convert from milliseconds to strings and vice versa
- 🎯 Accurate: Uses precise time calculations (365.25 days/year, 30.4375 days/month)
- 📏 Flexible: Supports multiple time formats and abbreviations
- 🌍 Localizable: Support for multiple languages and custom locales
- ⚡ Modern: ES Modules, Tree-shakable, and fully typed
Installation
npm install type-better-msQuick Start
import ms from 'type-better-ms';
// Convert string to milliseconds
ms('1 day 2 hours 30 minutes'); // → 95400000
ms('2w 3d 12h'); // → 1512000000
// Convert milliseconds to string
ms(95400000); // → "1 day 2 hours 30 minutes"
ms(1483200000); // → "2 weeks 3 days 4 hours"API
ms(value: string): number
Convert a time string to milliseconds.
ms(value: number): string
Convert milliseconds to a human-readable time string.
Time Formats
BetterMS supports a wide variety of time formats:
| Unit | Supported Formats |
|---|---|
| Century | century, centuries, CENT, c |
| Decade | decade, decades, DEC |
| Year | year, years, Y, y |
| Month | month, months, M |
| Week | week, weeks, W, w |
| Day | day, days, D, d |
| Hour | hour, hours, H, h |
| Minute | minute, minutes, MIN, min, m |
| Second | second, seconds, SEC, sec, s |
| Millisecond | millisecond, milliseconds, MS, ms |
Examples
String to Milliseconds
ms('5d 12m 45s') // → 432765000
ms('55 sec') // → 55000
ms('1 year 2 months') // → 36709200000
ms('1 MONTH 12 DAYS') // → 3732480000
ms('2.5 hours') // → 9000000
ms('1.5d') // → 129600000Milliseconds to String
ms(39447000000) // → "1 year 3 months"
ms(3666600000) // → "1 month 1 week 5 days"
ms(55000) // → "55 seconds"
ms(9000000) // → "2 hours 30 minutes"Advanced Usage
Direct Function Imports
import { toMS, fromMS } from 'type-better-ms';
toMS('2 days 6 hours'); // → 194400000
fromMS(194400000); // → "2 days 6 hours"Utility Functions
import { convertMiliseconds, convertMilisecondsWithRemainder } from 'type-better-ms';
convertMiliseconds(55000) // → "55 seconds"
convertMiliseconds(55900) // → "55 seconds" (rounded)
convertMiliseconds(39447000000, false) // → "1.25 years" (exact)
convertMilisecondsWithRemainder(39447000000)
// → { string: "1 year", remainder: 2835000000 }Localization
BetterMS supports multiple languages. Register custom locales:
import { registerLocales } from 'type-better-ms';
import { ENLocale } from 'type-better-ms';
import { RULocale } from 'type-better-ms';
// Register with English as fallback
registerLocales(RULocale, true);
registerLocales(myLocale, true);
// Register multiple locales
registerLocales([RULocale, ENLocale]);Time Calculations
BetterMS uses precise time calculations:
- Year: 365.25 days
- Month: 30.4375 days (average)
- Week: 7 days
- Day: 24 hours
This ensures accurate conversions for all time periods.
Building from Source
git clone https://github.com/Makar-Ts/BetterMS.git
cd BetterMS
npm install
npm run build
npm run testLicense
MIT License - see LICENSE file for details.