Temps relatif (Relative Time)
Locale#relativeTime doit être un objet contenant les chaînes de remplacement pour dayjs#from.
TIP
Cela requiert l'extension UpdateLocale pour fonctionner.
dayjs.extend(updateLocale);
dayjs.updateLocale('en', {
relativeTime: {
future: 'dans %s',
past: '%s il y a',
s: 'quelques secondes',
m: 'une minute',
mm: '%d minutes',
h: 'une heure',
hh: '%d heures',
d: 'un jour',
dd: '%d jours',
M: 'un mois',
MM: '%d mois',
y: 'un an',
yy: '%d ans',
},
});Locale#relativeTime.future fait référence au préfixe/suffixe pour les dates futures. Locale#relativeTime.past fait référence au préfixe/suffixe pour les dates passées.
Pour tous les autres, un seul caractère fait référence au singulier, et un double caractère fait référence au pluriel.
Traitement additionnel des jetons (Additional token processing)
Si une locale requiert un traitement additionnel pour un jeton, elle peut définir ce dernier comme une fonction avec la signature suivante, au lieu d'une chaîne de caractères. La fonction doit renvoyer une chaîne de caractères.
relativeTime: {
...,
yy: function (number, withoutSuffix, key, isFuture) {
return string;
}
}L'argument number représente le nombre d'unités pour cette clé. Pour m, le nombre est le nombre de minutes, etc.
L'argument withoutSuffix est true si le jeton doit être affiché sans suffixe, et false s'il doit être affiché avec un suffixe. (Cette logique est inversée car le comportement par défaut est d'afficher avec le suffixe.)
L'argument key représente la clé de remplacement dans l'objet Locale#relativeTime. (par exemple, s m mm h, etc.)
L'argument isFuture est true s'il faut utiliser le suffixe/préfixe futur et false s'il faut utiliser le préfixe/suffixe passé.
Seuils et arrondi du temps relatif (Relative Time thresholds and rounding)
Vous pouvez passer un objet de configuration lors de l'utilisation de cette extension pour mettre à jour ses seuils et sa configuration d'arrondi.
var config = {
thresholds: [{}],
rounding: function
}
dayjs.extend(relativeTime, config)thresholds est un Array d'Object définissant les seuils à partir desquels une unité est considérée comme une minute, une heure, etc. Par exemple, par défaut, plus de 45 secondes sont considérées comme une minute, plus de 22 heures sont considérées comme un jour, etc. Pour modifier ces seuils, vous pouvez passer de nouveaux thresholds comme ceci.
// seuils précis
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' },
];Vous pouvez également ajouter votre propre clé de seuils et mettre à jour la locale en conséquence.
var thresholds = [
...,
{ l: 'ss', r: 59, d: 'second' }
]
dayjs.updateLocale('en', {
relativeTime: {
...,
ss: "%d seconds"
}
})rounding est une Function permettant de traiter le nombre avant de l'intégrer à la chaîne de format relativeTime spécifiée dans la locale. Math.round est utilisé par défaut. Pour modifier ce comportement, vous pouvez passer une nouvelle fonction rounding comme ceci.
// Math.round par défaut
var rounding = Math.floor;