diff --git a/src/plugin/localeData/index.js b/src/plugin/localeData/index.js index 1d44a7bba..b6da1ca78 100644 --- a/src/plugin/localeData/index.js +++ b/src/plugin/localeData/index.js @@ -7,6 +7,7 @@ export default (o, c, dayjs) => { // locale needed later } return locale[target] } + const getDayjsLocaleObject = () => dayjs.Ls[dayjs.locale()] const localeData = function () { return { months: instance => @@ -26,14 +27,24 @@ export default (o, c, dayjs) => { // locale needed later } dayjs.localeData = () => { - const localeObject = dayjs.Ls[dayjs.locale()] + const localeObject = getDayjsLocaleObject() return { firstDayOfWeek: () => localeObject.weekStart || 0, - weekdays: () => localeObject.weekdays, - weekdaysShort: () => getShort(localeObject, 'weekdaysShort', 'weekdays', 3), - weekdaysMin: () => getShort(localeObject, 'weekdaysMin', 'weekdays', 2), - months: () => localeObject.months, - monthsShort: () => getShort(localeObject, 'monthsShort', 'months', 3) + weekdays: () => dayjs.weekdays(), + weekdaysShort: () => dayjs.weekdaysShort(), + weekdaysMin: () => dayjs.weekdaysMin(), + months: () => dayjs.months(), + monthsShort: () => dayjs.monthsShort() } } + + dayjs.months = () => getDayjsLocaleObject().months + + dayjs.monthsShort = () => getShort(getDayjsLocaleObject(), 'monthsShort', 'months', 3) + + dayjs.weekdays = () => getDayjsLocaleObject().weekdays + + dayjs.weekdaysShort = () => getShort(getDayjsLocaleObject(), 'weekdaysShort', 'weekdays', 3) + + dayjs.weekdaysMin = () => getShort(getDayjsLocaleObject(), 'weekdaysMin', 'weekdays', 2) } diff --git a/test/plugin/localeData.test.js b/test/plugin/localeData.test.js index 13cea74c9..28d667a02 100644 --- a/test/plugin/localeData.test.js +++ b/test/plugin/localeData.test.js @@ -51,3 +51,16 @@ it('Global localeData', () => { expect(dayjsLocaleData.weekdaysMin()).toEqual(momentLocaleData.weekdaysMin()) }) }) + + +it('Listing the months and weekdays', () => { + ['zh-cn', 'en'].forEach((lo) => { + dayjs.locale(lo) + moment.locale(lo) + expect(dayjs.months()).toEqual(moment.months()) + expect(dayjs.monthsShort()).toEqual(moment.monthsShort()) + expect(dayjs.weekdays()).toEqual(moment.weekdays()) + expect(dayjs.weekdaysShort()).toEqual(moment.weekdaysShort()) + expect(dayjs.weekdaysMin()).toEqual(moment.weekdaysMin()) + }) +})