Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

@navneet-baid/timeago-formatter

navneet-baid153MIT1.0.1

A flexible time ago formatter with multiple format support

timeago, time, date, format, relative time

readme

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 seconds
  • friendly: "a minute ago", "2 hours ago", etc.

API

timeAgo(date, options)

  • date: Date object, ISO string, or timestamp
  • options (object):
    • format (string): Name of built-in format to use
    • customFormat (object): Custom format definition
    • referenceDate (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