Format durations, time ago strings, and custom date formats

Import

import { ... } from 'ts-time-utils/format';

Examples

Format Duration

Convert milliseconds to human-readable duration strings

import { formatDuration, timeAgo, parseDuration } from 'ts-time-utils/format';

// Format milliseconds to readable duration
console.log(formatDuration(65000));
// "1 minute, 5 seconds"

console.log(formatDuration(65000, { short: true }));
// "1m 5s"

console.log(formatDuration(90061000, { maxUnits: 2 }));
// "1 day, 1 hour"

// Time ago strings
console.log(timeAgo(new Date(Date.now() - 60000)));
// "1 minute ago"

console.log(timeAgo(new Date(Date.now() + 3600000)));
// "in 1 hour"

// Parse duration strings back to ms
console.log(parseDuration('1h 30m'));
// 5400000

Format Date

Format dates using custom patterns

import { formatDate, formatTime } from 'ts-time-utils/format';

const date = new Date('2025-09-14T14:30:45');

// Custom date formatting
console.log(formatDate(date, 'YYYY-MM-DD'));
// "2025-09-14"

console.log(formatDate(date, 'MMMM Do, YYYY'));
// "September 14th, 2025"

console.log(formatDate(date, 'ddd, MMM D'));
// "Sun, Sep 14"

// Format time
console.log(formatTime(date, '12h'));
// "2:30 PM"

console.log(formatTime(date, '24h'));
// "14:30"