CodeBlanks Logo Icon CodeBlanks

Intl.RelativeTimeFormat

JavaScript kursu · Uzman · Ders 57/63

Intl.RelativeTimeFormat ile '3 gün önce' gibi görece zaman ifadelerini formatlamayı öğrenirsin.

Intl.RelativeTimeFormat

Intl.RelativeTimeFormat '3 gün önce', '2 saat sonra' gibi görece zaman ifadelerini biçimlendirir. Constructor'a locale dizesini verirsin; format metodu bir sayı ve birim dizesi alır. Birimler şunlardır: 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second'. Negatif sayı 'önce', pozitif sayı 'sonra' anlamına gelir. numeric: 'auto' seçeneği '1 gün önce' yerine 'dün' gibi özelleşmiş ifadeler kullanır.

Uygulama 'dün' ifadesini üret

'tr-TR' locale'i için bir Intl.RelativeTimeFormat oluştur. numeric 'auto' olsun. format metodunu -1 sayısı ve 'day' birimiyle çağır, sonucu yesterday değişkenine ata.

Örnek çözümü göster
1. new Intl.RelativeTimeFormat('tr-TR', { numeric: 'auto' }) ile oluştur.
2. .format(-1, 'day') ile biçimle.
3. Sonucu yesterday değişkenine ata.

Örnek çözüm:
const yesterday = new Intl.RelativeTimeFormat('tr-TR', { numeric: 'auto' }).format(-1, 'day');

numeric ve style seçenekleri

Intl.RelativeTimeFormat'in iki önemli seçeneği vardır. numeric varsayılan 'always' her zaman sayı gösterir: '1 gün önce'. 'auto' ise bazı değerler için özelleşmiş dize verir: 'dün', 'bugün', 'yarın'. style üç değer alır: 'long' tam biçim ('gün önce'), 'short' kısa ('g öncesi'), 'narrow' en kısa. Sayı negatifse 'önce', pozitifse 'sonra' anlamı çıkar. Birim yanlış verilirse RangeError fırlatılır.

Kendini test et

  1. numeric: 'auto' ne yapar?

    • Sadece pozitif sayılara izin verir
    • Saat dilimini değiştirir
    • Çıktıyı kısaltır
    • '1 day ago' yerine 'yesterday' gibi özelleşmiş ifade kullanır
    Cevabı göster

    '1 day ago' yerine 'yesterday' gibi özelleşmiş ifade kullanır — Doğru. numeric 'auto' bazı değerler için dile özgü kısa ifadeler üretir.

  2. gün birimini ekle

    const rtf = new Intl.RelativeTimeFormat('en'); rtf.format(-3, '____');
    Cevabı göster
    const rtf = new Intl.RelativeTimeFormat('en'); rtf.format(-3, 'day'');
  3. Zaman birimlerini anlamlarına eşleştir

    year
    Yıl
    month
    Ay
    day
    Gün
    hour
    Saat

Uzman bölümündeki tüm dersler