TimeAgo Formatter
A flexible library for converting dates to "time ago" strings with multiple format support.
Installation
npm install @navneet-baid/timeago-formatter
Usage
const timeAgo = require('@navneet-baid/timeago-formatter');
// Basic usage
console.log(timeAgo(new Date(Date.now() - 3600000))); // "1 hour ago"
// With format option
console.log(timeAgo(new Date(Date.now() - 3600000), { format: 'short' })); // "1h"
// Custom format
const customFormat = {
units: {
day: 86400,
hour: 3600,
minute: 60
},
formatter: (value, unit) => `${value} ${unit.charAt(0)}`,
lessThanAMinute: '<1m'
};
console.log(timeAgo(new Date(Date.now() - 3600000), { customFormat })); // "1 h"
Built-in Formats
default
: "1 minute ago", "2 hours ago", etc.short
: "1m", "2h", etc.twitter
: Similar to short but without secondsfriendly
: "a minute ago", "2 hours ago", etc.
API
timeAgo(date, options)
date
: Date object, ISO string, or timestampoptions
(object):format
(string): Name of built-in format to usecustomFormat
(object): Custom format definitionreferenceDate
(Date): Date to compare against (defaults to now)allowFuture
(boolean): Whether to allow future dates (default false)
Adding a custom format
const { addFormat } = require('@navneet-baid/timeago-formatter');
addFormat('myFormat', {
units: {
// your units in seconds
},
formatter: (value, unit, isFuture) => {
// return formatted string
},
lessThanAMinute: 'just now',
future: 'in the future'
});
License
MIT