Intl.DurationFormat artık Temel olarak kullanılabilir

Yayınlanma tarihi: 20 Mart 2025

Web sayfalarında sıklıkla karşılaşılan bir bilgi türü, belirli bir etkinliğe ne kadar zaman kaldığını veya bir etkinlikten bu yana ne kadar süre geçtiğini belirten metinlerdir. Bu değer genellikle süreyi saat, dakika, saniye veya diğer yararlı zaman birimleriyle ifade eden bir dize olarak gösterilir.

Intl.DurationFormat, ek JavaScript'e gerek kalmadan, uluslararasılaştırma ihtiyaçlarınıza göre tarayıcıda bu işlemi sizin için yapan kullanışlı bir özelliktir. Mart 2025'ten itibaren bu özellik, yeni kullanıma sunulan temel özellik haline geldi.

Intl.DurationFormat nasıl çalışır?

Intl.DurationFormat, örneklendiğinde süreyi açıklayan bir dize döndüren bir sınıftır. Bu işlev, dize oluşturulmasını istediğiniz zaman birimlerine karşılık gelen anahtar ve değerler içeren bir nesne belirterek çalışır:

// Specify the duration:
const duration = {
  years: 1,
  hours: 20,
  minutes: 15,
  seconds: 35
};

// Output: '1 yr, 20 hr, 15 min, 35 sec'
new Intl.DurationFormat('en').format(duration);

Bir dizeyi uzun biçimde döndürmek için yapıcının ikinci bağımsız değişkenindeki style seçeneğine 'long' değerini iletin:

const duration = {
  years: 1,
  hours: 20,
  minutes: 15,
  seconds: 35
};

// Output: '1 year, 20 hours, 15 minutes, 35 seconds'
new Intl.DurationFormat('en', { style: 'long' }).format(duration);

Bu örnekler şimdilik İngilizce dilinde dize oluşturur. Bu bir uluslararasılaştırma özelliği olduğundan asıl yararlılığı, herhangi bir geçerli yerel ayarı ileterek ihtiyacınız olan desteklenen dilde biçimlendirilmiş dizeler alabilmenizdir:

const duration = {
  years: 1,
  hours: 20,
  minutes: 15,
  seconds: 35
};

// Output: '1 Jahr, 20 Stunden, 15 Minuten und 35 Sekunden'
new Intl.DurationFormat('de', { style: 'long' }).format(duration);

// Output: '1 año, 20 horas, 15 minutos y 35 segundos'
new Intl.DurationFormat('es', { style: 'long' }).format(duration);

// Output: '1年20小时15分钟35秒钟'
new Intl.DurationFormat('zh', { style: 'long' }).format(duration);

// Output: '1 år, 20 timer, 15 minutter og 35 sekunder'
new Intl.DurationFormat('no', { style: 'long' }).format(duration);

// Output: 'mwaka 1, saa 20, dakika 15 na sekunde 35'
new Intl.DurationFormat('sw', { style: 'long' }).format(duration);

Bu örnekler, bu yeni özellikle neler yapabileceğinize dair fikir vermektedir. Bu API'nin neler yapabileceği hakkında daha fazla bilgi edinmek için MDN'deki Intl.DurationFormat belgelerini inceleyin.