原先代码
import dayjs from "dayjs";
import 'dayjs/locale/zh-cn';
dayjs.locale("zh-cn");
线上报错:TypeError: Cannot read properties of undefined (reading ‘locale’)
把zh-cn.js 重写
创建dayJs_zh_cn.ts
import dayjs from "dayjs";
import { Dayjs, ConfigType, QUnitType } from "dayjs";
// 定义符合 dayjs 需要的 ILocale 类型的语言包
const zhCN: dayjs.ConfigType = {
name: "zh-cn",
weekdays: "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
weekdaysShort: "周日_周一_周二_周三_周四_周五_周六".split("_"),
weekdaysMin: "日_一_二_三_四_五_六".split("_"),
months:
"一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split(
"_"
),
monthsShort: "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
ordinal: (n: number, period: string) => {
if (period === "W") return `${n}周`;
return `${n}日`;
},
weekStart: 1,
yearStart: 4,
formats: {
LT: "HH:mm",
LTS: "HH:mm:ss",
L: "YYYY/MM/DD",
LL: "YYYY年M月D日",
LLL: "YYYY年M月D日Ah点mm分",
LLLL: "YYYY年M月D日ddddAh点mm分",
l: "YYYY/M/D",
ll: "YYYY年M月D日",
lll: "YYYY年M月D日 HH:mm",
llll: "YYYY年M月D日dddd HH:mm",
},
relativeTime: {
future: "%s内",
past: "%s前",
s: "几秒",
m: "1 分钟",
mm: "%d 分钟",
h: "1 小时",
hh: "%d 小时",
d: "1 天",
dd: "%d 天",
M: "1 个月",
MM: "%d 个月",
y: "1 年",
yy: "%d 年",
},
meridiem: (hour: number, minute: number) => {
const t = 100 * hour + minute;
return t < 600
? "凌晨"
: t < 900
? "早上"
: t < 1100
? "上午"
: t < 1300
? "中午"
: t < 1800
? "下午"
: "晚上";
},
};
// 设置 dayjs 的语言
dayjs.locale(zhCN as any, null, true);
export default zhCN;
import "@/utils/dayjs_zh_cn"; 代替 import 'dayjs/locale/zh-cn';