Duration
Try in Playground →Immutable Duration class with arithmetic operations
Import
import { ... } from 'ts-time-utils/duration'; Examples
Create Durations
Create Duration objects from various sources
import { Duration } from 'ts-time-utils/duration';
// Create from units
const d1 = Duration.fromHours(2.5);
console.log(d1.toString()); // "2h 30m"
const d2 = Duration.fromMinutes(90);
console.log(d2.toString()); // "1h 30m"
// Create from object
const d3 = new Duration({ hours: 1, minutes: 30, seconds: 45 });
console.log(d3.toString()); // "1h 30m 45s"
// Parse from string
const d4 = Duration.fromString('2h 15m 30s');
console.log(d4.milliseconds); // 8130000
// From date range
const start = new Date('2025-09-14T09:00');
const end = new Date('2025-09-14T17:30');
const d5 = Duration.between(start, end);
console.log(d5.toString()); // "8h 30m" Duration Arithmetic
Add, subtract, multiply, and divide durations
import { Duration, sumDurations, maxDuration } from 'ts-time-utils/duration';
const d1 = Duration.fromHours(2);
const d2 = Duration.fromMinutes(30);
// Arithmetic (immutable - returns new Duration)
const sum = d1.add(d2);
console.log(sum.toString()); // "2h 30m"
const diff = d1.subtract(d2);
console.log(diff.toString()); // "1h 30m"
const doubled = d1.multiply(2);
console.log(doubled.toString()); // "4h"
const half = d1.divide(2);
console.log(half.toString()); // "1h"
// Comparisons
console.log(d1.greaterThan(d2)); // true
console.log(d1.equals(Duration.fromMinutes(120))); // true
// Array utilities
const durations = [d1, d2, Duration.fromHours(1)];
console.log(sumDurations(...durations).toString()); // "3h 30m"
console.log(maxDuration(...durations).toString()); // "2h"