Intl.DurationFormat în JavaScript

Formatare regională (Intl) ES2025 (Node.js 23+, browserele din 2025)

Formatează o durată (ore, minute, secunde) după regulile unei limbi: „2 ore și 5 minute”.

Sintaxă
const df = new Intl.DurationFormat("ro", { style: "long" });
df.format({ hours: 2, minutes: 5 })

Ce face Intl.DurationFormat

format primește un obiect cu oricare dintre câmpurile years, months, weeks, days, hours, minutes, seconds, milliseconds (și mai mici). Câmpurile lipsă sau zero nu sunt afișate.

Opțiunea style alege forma: "long" (2 ore, 5 minute, 30 de secunde), "short" (implicit), "narrow" sau "digital" (2:05:00). formatToParts returnează bucățile.

Parametri

Parametru Descriere
limba Opțional. Codul limbii.
optiuni Opțional. style și stilul fiecărei unități.

Ce returnează

Un obiect formator.

Exemple

Exemplul 1: Durata unui film în mai multe stiluri

const durata = { hours: 2, minutes: 5, seconds: 30 };

for (const style of ["long", "short", "narrow", "digital"]) {
  console.log(style.padEnd(8), new Intl.DurationFormat("ro", { style }).format(durata));
}

Rezultat

long     2 ore, 5 minute, 30 de secunde
short    2 ore, 5 min., 30 s
narrow   2 h, 5 m, 30 s
digital  2:05:30

Exemplul 2: Din secunde într-o durată

function dinSecunde(total) {
  return { hours: Math.floor(total / 3600), minutes: Math.floor((total % 3600) / 60), seconds: total % 60 };
}

const df = new Intl.DurationFormat("ro", { style: "long" });
console.log(df.format(dinSecunde(3725)));
console.log(df.formatToParts({ minutes: 1 }).map((p) => p.value).join(""));
console.log(df.resolvedOptions().style, Intl.DurationFormat.supportedLocalesOf("ro"));

Rezultat

1 oră, 2 minute, 5 secunde
1 minut
long [ 'ro' ]

Greșeli frecvente

  • Dai numărul total de secunde ({ seconds: 3725 }) și primești „3.725 de secunde”. Formatorul nu convertește unitățile; împarte tu durata în ore, minute și secunde.

Comenzi înrudite

  • Intl.RelativeTimeFormat: Formatează timpul relativ: „acum 3 zile”, „peste 2 ore”, „ieri”, „mâine”.
  • Intl.NumberFormat: Formatează numere după regulile unei limbi: monedă, procente, unități, forme compacte (1,2 mil.).
  • getTime / setTime / valueOf: Citește sau setează momentul ca număr de milisecunde de la 1 ianuarie 1970 UTC.