Tiempo relativo
Locale#relativeTime
debería ser un objeto de las cadenas de reemplazo para dayjs#from
.
Esto requiere el
UpdateLocale
plugin para trabajar
dayjs.extend(updateLocale)
dayjs.updateLocale('en', {
relativeTime: {
future: "in %s",
past: "%s ago",
s: 'a few seconds',
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
}
})
Locale#relativeTime.future
se refiere al prefijo/sufijo para fechas futuras. Locale#relativeTime.past
se refiere al prefijo/sufijo para fechas pasadas.
Para todos los demás, un solo carácter se refiere al singular, y un doble carácter se refiere al plural.
Procesamiento adicional de token
Si un valor regional requiere procesamiento adicional para un token, puede establecer el token como una función con la siguiente firma en lugar de una cadena. La función debe devolver una cadena.
relativeTime: {
...,
yy: function (number, withoutSuffix, key, isFuture) {
return string;
}
}
El argumento number
se refiere al número de unidades para esa clave. Para m
, el número es el número de minutos, etc.
El argumento withoutSuffix
será verdadero si el token se mostrará sin un sufijo y falso si se mostrará con un sufijo. (La razón de la lógica inversa es porque el comportamiento predeterminado es mostrar con el sufijo)
El argumento key
se refiere a la clave de reemplazo en el objeto Locale#relativeTime
. (por ejemplo, s m mm h
, etc.)
El argumento de isFuture
será verdadero si va a usar el sufijo/prefijo futuro y falso si va a usar el prefijo/sufijo pasado.
Límites de tiempo relativos y redondeo
Puede pasar un objeto config mientras usa este plugin para actualizar sus umbrales y configuración de redondeo.
var config = {
thresholds: [{}],
rounding: function
}
dayjs.extend(relativeTime, config)
thresholds
es un Array
de Object
definido cuando una unidad se considera un minuto, una hora y así sucesivamente. Por ejemplo, por defecto más de 45 segundos se considera un minuto, más de 22 horas se considera un día y así sucesivamente. Para cambiarlos puede pasar un nuevo thresholds
como este.
// strict thresholds
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' }
]
También puede añadir su propia clave y actualizar la configuración regional en consecuencia.
var thresholds = [
...,
{ l: 'ss', r: 59, d: 'second' }
]
dayjs.updateLocale('en', {
relativeTime: {
...,
ss: "%d seconds"
}
})
rounding
es una Function
para procesar el número antes de suministrarlo a la cadena de formato relativeTime especificada en la configuración local. Para cambiarlos puedes pasar un nuevo rounding
como este.
// Math.round by default
var rounding = Math.floor