Czas względny
Locale#relativeTime powinien być obiektem zawierającym ciągi znaków, które będą używane zamiast domyślnych wartości w dayjs#from.
TIP
Aby ta funkcjonalność działała, wymagana jest wtyczka UpdateLocale.
dayjs.extend(updateLocale);
dayjs.updateLocale('en', {
relativeTime: {
future: 'za %s',
past: '%s temu',
s: 'kilka sekund',
m: 'minutę',
mm: '%d minut',
h: 'godzinę',
hh: '%d godzin',
d: 'dzień',
dd: '%d dni',
M: 'miesiąc',
MM: '%d miesięcy',
y: 'rok',
yy: '%d lat',
},
});Locale#relativeTime.future określa przedrostek/przyrostek dla dat w przyszłości. Locale#relativeTime.past określa przedrostek/przyrostek dla dat w przeszłości.
Dla pozostałych kluczy, pojedynczy znak odnosi się do liczby pojedynczej, a podwójny znak do liczby mnogiej.
Dodatkowe przetwarzanie tokenów
Jeśli specyfika danego języka wymaga dodatkowego przetworzenia tokenu, można zdefiniować token jako funkcję o następującej sygnaturze, zamiast ciągu znaków. Funkcja ta powinna zwracać ciąg znaków.
relativeTime: {
...,
yy: function (number, withoutSuffix, key, isFuture) {
return string;
}
}Argument number reprezentuje liczbę jednostek dla danego klucza. Na przykład, dla m jest to liczba minut.
Argument withoutSuffix przyjmuje wartość true, jeśli token jest wyświetlany bez przyrostka, a false, jeśli z przyrostkiem. (Logika jest odwrócona, ponieważ domyślnie wyświetlane są wartości z przyrostkiem).
Argument key reprezentuje klucz w obiekcie Locale#relativeTime (np. s, m, mm, h itp.).
Argument isFuture przyjmuje wartość true, jeśli ma być używany przedrostek/przyrostek dla przyszłości, a false, jeśli dla przeszłości.
Progi i zaokrąglanie czasu względnego
Podczas korzystania z tej wtyczki, można przekazać obiekt konfiguracyjny, aby dostosować progi i sposób zaokrąglania.
var config = {
thresholds: [{}],
rounding: function
}
dayjs.extend(relativeTime, config)thresholds to tablica obiektów, która definiuje, kiedy dana jednostka czasu jest uznawana za minutę, godzinę, itd. Domyślnie, na przykład, więcej niż 45 sekund jest uznawane za minutę, a więcej niż 22 godziny za dzień. Aby to zmienić, można przekazać nową tablicę thresholds w następujący sposób.
// Ścisłe progi
var thresholds = [
{ l: 's', r: 1 },
{ l: 'm', r: 1 },
{ l: 'mm', r: 59, d: 'minute' },
{ l: 'h', r: 1 },
{ l: 'hh', r: 23, d: 'hour' },
{ l: 'd', r: 1 },
{ l: 'dd', r: 29, d: 'day' },
{ l: 'M', r: 1 },
{ l: 'MM', r: 11, d: 'month' },
{ l: 'y', r: 1 },
{ l: 'yy', d: 'year' },
];Można również dodać własny klucz progów i zaktualizować ustawienia regionalne.
var thresholds = [
...,
{ l: 'ss', r: 59, d: 'second' }
]
dayjs.updateLocale('en', {
relativeTime: {
...,
ss: "%d seconds"
}
})rounding to funkcja, która przetwarza liczbę przed przekazaniem jej do ciągu formatu relativeTime zdefiniowanego w ustawieniach regionalnych. Aby to zmienić, można przekazać nową funkcję rounding w następujący sposób.
// Domyślnie Math.round
var rounding = Math.floor;