自定義
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