@cainiaofe/cn-utils
Version:
菜鸟前端基础工具库
42 lines (41 loc) • 1.7 kB
JavaScript
import dayjs, { Dayjs } from 'dayjs';
import utc from 'dayjs/plugin/utc';
import timezone from 'dayjs/plugin/timezone';
import customParseFormat from 'dayjs/plugin/customParseFormat';
import advancedFormat from 'dayjs/plugin/advancedFormat';
import weekOfYear from 'dayjs/plugin/weekOfYear';
import weekday from 'dayjs/plugin/weekday';
import localeData from 'dayjs/plugin/localeData';
import isoWeek from 'dayjs/plugin/isoWeek';
import isoWeeksInYear from 'dayjs/plugin/isoWeeksInYear';
import isLeapYear from 'dayjs/plugin/isLeapYear';
import isBtw from 'dayjs/plugin/isBetween';
import updateLocale from 'dayjs/plugin/updateLocale';
import { langToShortLang, getLang } from '@cainiaofe/cn-i18n';
import '../locale/dayjs';
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.extend(customParseFormat);
dayjs.extend(advancedFormat);
dayjs.extend(weekOfYear);
dayjs.extend(weekday);
dayjs.extend(localeData);
dayjs.extend(isoWeek);
dayjs.extend(isoWeeksInYear);
dayjs.extend(isLeapYear);
dayjs.extend(isBtw);
dayjs.extend(updateLocale);
var getDayjsLang = function (lang) {
var lowerCase = lang.toLowerCase();
if (dayjs.Ls[lowerCase])
return lowerCase;
var slang = langToShortLang(lang);
// 兼容希伯来语i18n对于希伯来语可能存在2种版本的,dayjs只提供的he的翻译)
slang = slang === 'iw' ? 'he' : slang;
// 兼容英文本地语种,为了提高英文本地语种的兼容性,所有英文本地语种全部fallback到en
slang = slang.startsWith('en-') ? 'en' : slang;
// 不再支持范围的默认为英文
return dayjs.Ls[slang] ? slang : 'en';
};
dayjs.locale(getDayjsLang(getLang()));
export { dayjs, Dayjs, getDayjsLang };