123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import type { Duration, DurationUnit, LocalizedOptions } from "./types.js";
- /**
- * The {@link formatDuration} function options.
- */
- export interface FormatDurationOptions
- extends LocalizedOptions<"formatDistance"> {
- /** The array of units to format */
- format?: DurationUnit[];
- /** Should be zeros be included in the output? */
- zero?: boolean;
- /** The delimiter string to use */
- delimiter?: string;
- }
- /**
- * @name formatDuration
- * @category Common Helpers
- * @summary Formats a duration in human-readable format
- *
- * @description
- * Return human-readable duration string i.e. "9 months 2 days"
- *
- * @param duration - The duration to format
- * @param options - An object with options.
- *
- * @returns The formatted date string
- *
- * @example
- * // Format full duration
- * formatDuration({
- * years: 2,
- * months: 9,
- * weeks: 1,
- * days: 7,
- * hours: 5,
- * minutes: 9,
- * seconds: 30
- * })
- * //=> '2 years 9 months 1 week 7 days 5 hours 9 minutes 30 seconds'
- *
- * @example
- * // Format partial duration
- * formatDuration({ months: 9, days: 2 })
- * //=> '9 months 2 days'
- *
- * @example
- * // Customize the format
- * formatDuration(
- * {
- * years: 2,
- * months: 9,
- * weeks: 1,
- * days: 7,
- * hours: 5,
- * minutes: 9,
- * seconds: 30
- * },
- * { format: ['months', 'weeks'] }
- * ) === '9 months 1 week'
- *
- * @example
- * // Customize the zeros presence
- * formatDuration({ years: 0, months: 9 })
- * //=> '9 months'
- * formatDuration({ years: 0, months: 9 }, { zero: true })
- * //=> '0 years 9 months'
- *
- * @example
- * // Customize the delimiter
- * formatDuration({ years: 2, months: 9, weeks: 3 }, { delimiter: ', ' })
- * //=> '2 years, 9 months, 3 weeks'
- */
- export declare function formatDuration(
- duration: Duration,
- options?: FormatDurationOptions,
- ): string;
|