Introduction to humanize-duration
The humanize-duration library provides an easy and customizable way to convert milliseconds into human-readable time strings. This is particularly useful for creating user-friendly time displays that can be easily understood by people. Let’s delve into its functionalities and various API methods with relevant code snippets.
Installation
npm install humanize-duration
Basic Usage
const humanizeDuration = require("humanize-duration"); console.log(humanizeDuration(3000)); // "3 seconds"
Examples of Various API Methods
Customize Language
console.log(humanizeDuration(3000, { language: "es" })); // "3 segundos"
Set Precision
console.log(humanizeDuration(1234000, { largest: 2 })); // "20 minutes, 34 seconds"
Set Round
console.log(humanizeDuration(3602000, { round: true })); // "1 hour"
Fallback Language
const humanizeDuration = require("humanize-duration"); console.log(humanizeDuration(5000, {
language: "xx",
fallback: "en"
})); // "5 seconds"
Unit Customization
console.log(humanizeDuration(1234000, {
units: ["h", "m"]
})); // "20 minutes"
Conjunction
console.log(humanizeDuration(22140000, {
conjunction: " and ",
serialComma: false
})); // "6 hours and 9 minutes"
Unit Count
console.log(humanizeDuration(22140000, { maxDecimalPoints: 1 })); // "6.2 hours"
Spaceless Format
console.log(humanizeDuration(25500, { spacer: "" })); // "25seconds"
Minimum Configuration
console.log(humanizeDuration(920000, {
min: 2
})); // "15 minutes, 20 seconds"
App Example
Consider a countdown timer application that shows how much time is left in a human-readable format using humanize-duration.
const humanizeDuration = require('humanize-duration'); setInterval(() => {
const remainingTime = new Date("2023-12-31T23:59:59").getTime() - Date.now();
console.log(humanizeDuration(remainingTime, {
round: true, units: ["d", "h", "m", "s"]
}));
}, 1000);
In the above example, humanize-duration is used to display how much time is left until New Year’s Eve, updating every second in a human-readable format.
Hash: 70c6658034e727595dcbd4b4cc88e32010a8ed9d8225a552bcdb0653af7f820f