自定义
Day.js 提供了高度的自定义能力。
你可以创建新的语言环境。
js
var localeObject = {...} // Day.js 语言环境对象,详细信息请参考下文
dayjs.locale('en-my-settings', localeObject);也可以更新现有的语言环境。
TIP
此功能需要 UpdateLocale 插件才能正常使用。
js
dayjs.extend(updateLocale);
dayjs.updateLocale('en', {
/**/
});Day.js 语言环境对象模板:
javascript
const localeObject = {
name: 'es', // 语言环境名称(字符串)
weekdays: 'Domingo_Lunes ...'.split('_'), // 星期数组
weekdaysShort: 'Sun_M'.split('_'), // 可选,简写星期数组。如果未提供,则使用星期数组中每个元素的头三个字母。
weekdaysMin: 'Su_Mo'.split('_'), // 可选,最小化星期数组。如果未提供,则使用星期数组中每个元素的头两个字母。
weekStart: 1, // 可选,设置一周的开始日期。 0 表示星期日,1 表示星期一,以此类推。默认为 0。
yearStart: 4, // 可选,确定一年中第一周的规则。包含 1 月 4 日的那一周被认为是当年的第一周。默认为 1。
months: 'Enero_Febrero ... '.split('_'), // 月份数组
monthsShort: 'Jan_F'.split('_'), // 可选,简写月份数组。如果未提供,则使用月份数组中每个元素的头三个字母。
ordinal: n => `${n}º`, // ordinal 函数:(number) => 返回 number + 后缀
formats: {
// 允许本地化的简写格式选项
LTS: 'h:mm:ss A',
LT: 'h:mm A',
L: 'MM/DD/YYYY',
LL: 'MMMM D, YYYY',
LLL: 'MMMM D, YYYY h:mm A',
LLLL: 'dddd, MMMM D, YYYY h:mm A',
// 小写/简写,可选的本地化格式
l: 'D/M/YYYY',
ll: 'D MMM, YYYY',
lll: 'D MMM, YYYY h:mm A',
llll: 'ddd, MMM D, YYYY h:mm A',
},
relativeTime: {
// 相对时间格式字符串,请保持 %s 和 %d 不变
future: 'in %s', // 例如,在 2 小时内,%s 会被替换为 "2 小时"
past: '%s ago',
s: 'a few seconds',
m: 'a minute',
mm: '%d minutes',
h: 'an hour',
hh: '%d hours', // 例如,2 小时,%d 替换为 2。
d: 'a day',
dd: '%d days',
M: 'a month',
MM: '%d months',
y: 'a year',
yy: '%d years',
},
meridiem: (hour, minute, isLowercase) => {
// 可选的 AM/PM 表示
return hour > 12 ? 'PM' : 'AM';
},
};Day.js 语言环境文件模板 (例如 dayjs/locale/es.js):
javascript
import dayjs from 'dayjs'
const locale = { ... } // 你的 Day.js 语言环境对象。
dayjs.locale(locale, null, true) // 加载语言环境,以便后续使用
export default locale