A lightweight utility to humanize time intervals and durations, making them easier to understand for your users. Supports both CommonJS and ESM.
- Human-Readable Time: Turn durations into easy-to-read strings like
5 minutes ago
orin 3 days
. - Flexible Options: Customize output formats, thresholds, and more.
- Multi-Language Support: Coming Soon!
- Lightweight: Minimal dependencies and blazing-fast performance.
Install the package via npm or yarn:
# Using npm
npm install time-humanizer
# Using yarn
yarn add time-humanizer
# Using pnpm
pnpm add time-humanizer
# Using bun
bun add time-humanizer
This project is licensed under the MIT License
Contributions are welcome! Please check out our Contributing Guide for more details.
- Fork the repo.
- Create your feature branch: git checkout -b feature/amazing-feature.
- Commit your changes: git commit -m "Add some amazing feature".
- Push to the branch: git push origin feature/amazing-feature.
- Open a pull request.
Time Humanizer provides a simple API for humanizing time durations:
Example
import { humanizeDuration } from 'time-humanizer';
// Past durations
console.log(humanizeDuration(-60000)); // Output: "1 minute ago"
// Future durations
console.log(humanizeDuration(3600000)); // Output: "in 1 hour"
// Custom thresholds
console.log(humanizeDuration(900000, { threshold: 15 })); // Output: "15 minutes ago"
humanizeDuration(duration: number, options?: HumanizerOptions): string
Parameters: • duration: Time in milliseconds (negative for past, positive for future). • options (optional): • threshold (number): Adjusts precision for output. • locale (string): Language to display (default: en). • format (string): Customize time string format.