Göreceli Zaman
Locale#relativeTime
, dayjs#from
fonksiyonu için kullanılacak değiştirme dizelerini içeren bir nesne olmalıdır.
TIP
Bunun çalışabilmesi için UpdateLocale eklentisi gereklidir.
dayjs.extend(updateLocale);
dayjs.updateLocale('en', {
relativeTime: {
future: '%s sonra',
past: '%s önce',
s: 'birkaç saniye',
m: 'bir dakika',
mm: '%d dakika',
h: 'bir saat',
hh: '%d saat',
d: 'bir gün',
dd: '%d gün',
M: 'bir ay',
MM: '%d ay',
y: 'bir yıl',
yy: '%d yıl',
},
});
Locale#relativeTime.future
gelecekteki zamanlar için önek/sonek belirtir. Locale#relativeTime.past
geçmişteki zamanlar için önek/sonek belirtir.
Diğer durumlarda, tek karakterli anahtarlar tekil, çift karakterli anahtarlar ise çoğul anlam ifade eder.
Ek Belirteç İşleme
Bir yerel ayarın bir belirteç için özel bir işleme ihtiyacı varsa, o belirteci bir dize yerine aşağıdaki imzaya sahip bir fonksiyon olarak tanımlayabilirsiniz. Fonksiyon bir dize döndürmelidir.
relativeTime: {
...,
yy: function (number, withoutSuffix, key, isFuture) {
return string;
}
}
number
argümanı, ilgili anahtar için birim sayısını belirtir. Örneğin, m
için sayı dakika sayısıdır.
withoutSuffix
argümanı, belirtecin sonek olmadan mı görüntüleneceğini (true) yoksa sonek ile mi görüntüleneceğini (false) belirtir.
key
argümanı, Locale#relativeTime
nesnesindeki değiştirme anahtarını ifade eder (örneğin s
, m
, mm
, h
vb.).
isFuture
argümanı, gelecekteki sonek/önekin mi (true) yoksa geçmiş önek/sonekin mi (false) kullanılacağını belirtir.
Göreceli Zaman Eşikleri ve Yuvarlama
Bu eklentiyi kullanırken eşik ve yuvarlama yapılandırmasını güncellemek için bir yapılandırma nesnesi geçirebilirsiniz.
var config = {
thresholds: [{}],
rounding: function
}
dayjs.extend(relativeTime, config)
thresholds
, bir birimin ne zaman dakika, saat vb. olarak kabul edildiğini tanımlayan bir nesne dizisidir. Örneğin, varsayılan olarak 45 saniyeden fazla bir süre bir dakika, 22 saatten fazla bir süre bir gün vb. olarak kabul edilir. Bunları değiştirmek için aşağıdaki gibi yeni bir thresholds
tanımlayabilirsiniz.
// Kesin eşikler
var thresholds = [
{ l: 's', r: 1 },
{ l: 'm', r: 1 },
{ l: 'mm', r: 59, d: 'dakika' },
{ l: 'h', r: 1 },
{ l: 'hh', r: 23, d: 'saat' },
{ l: 'd', r: 1 },
{ l: 'dd', r: 29, d: 'gün' },
{ l: 'M', r: 1 },
{ l: 'MM', r: 11, d: 'ay' },
{ l: 'y', r: 1 },
{ l: 'yy', d: 'yıl' },
];
Ayrıca kendi eşik anahtarınızı ekleyebilir ve yerel ayarı buna göre güncelleyebilirsiniz.
var thresholds = [
...,
{ l: 'ss', r: 59, d: 'saniye' }
]
dayjs.updateLocale('en', {
relativeTime: {
...,
ss: "%d saniye"
}
})
rounding
, yerel ayarda belirtilen relativeTime
biçim dizesine verilmeden önce sayıyı işlemek için kullanılan bir Function
'dır. Bunu değiştirmek için şöyle yeni bir rounding
geçirebilirsiniz.
// Varsayılan: Math.round
var rounding = Math.floor;