From cb474d17e12b28bc5f10ab08cdc5daaa8fd430ff Mon Sep 17 00:00:00 2001 From: iamkun Date: Mon, 30 Mar 2020 18:04:29 +0800 Subject: [PATCH 1/2] feat: Update GenerateConfig to make it immutable --- src/generate/moment.ts | 35 +++++++++++++---------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/src/generate/moment.ts b/src/generate/moment.ts index b09fbf526..c41ef3aff 100644 --- a/src/generate/moment.ts +++ b/src/generate/moment.ts @@ -16,48 +16,39 @@ const generateConfig: GenerateConfig = { // set addYear: (date, diff) => { const clone = date.clone(); - clone.add(diff, 'year'); - return clone; + return clone.add(diff, 'year'); }, addMonth: (date, diff) => { const clone = date.clone(); - clone.add(diff, 'month'); - return clone; + return clone.add(diff, 'month'); }, addDate: (date, diff) => { const clone = date.clone(); - clone.add(diff, 'day'); - return clone; + return clone.add(diff, 'day'); }, setYear: (date, year) => { const clone = date.clone(); - clone.year(year); - return clone; + return clone.year(year); }, setMonth: (date, month) => { const clone = date.clone(); - clone.month(month); - return clone; + return clone.month(month); }, setDate: (date, num) => { const clone = date.clone(); - clone.date(num); - return clone; + return clone.date(num); }, setHour: (date, hour) => { const clone = date.clone(); - clone.hour(hour); - return clone; + return clone.hour(hour); }, setMinute: (date, minute) => { const clone = date.clone(); - clone.minute(minute); - return clone; + return clone.minute(minute); }, setSecond: (date, second) => { const clone = date.clone(); - clone.second(second); - return clone; + return clone.second(second); }, // Compare @@ -71,8 +62,8 @@ const generateConfig: GenerateConfig = { }, getWeek: (locale, date) => { const clone = date.clone(); - clone.locale(locale); - return clone.week(); + const result = clone.locale(locale); + return result.week(); }, getShortWeekDays: locale => { const date = moment().locale(locale); @@ -84,8 +75,8 @@ const generateConfig: GenerateConfig = { }, format: (locale, date, format) => { const clone = date.clone(); - clone.locale(locale); - return clone.format(format); + const result = clone.locale(locale); + return result.format(format); }, parse: (locale, text, formats) => { const fallbackFormatList: string[] = []; From c151f3d426cbd8d2a08d898e170e23ada2b298dd Mon Sep 17 00:00:00 2001 From: iamkun Date: Wed, 6 May 2020 11:57:25 +0800 Subject: [PATCH 2/2] fix: dayjs set firstDayOfWeek issue --- src/generate/dayjs.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/generate/dayjs.ts b/src/generate/dayjs.ts index 0be1d9cc7..b5a9530f0 100644 --- a/src/generate/dayjs.ts +++ b/src/generate/dayjs.ts @@ -49,7 +49,10 @@ const parseNoMatchNotice = () => { const generateConfig: GenerateConfig = { // get getNow: () => dayjs(), - getWeekDay: date => date.weekday(), + getWeekDay: date => { + const clone = date.locale('en'); + return clone.weekday() + clone.localeData().firstDayOfWeek(); + }, getYear: date => date.year(), getMonth: date => date.month(), getDate: date => date.date(),