Skip to content

Commit 287fed6

Browse files
committedJan 19, 2020
fix: Update LocaleData plugin to support dayjs.localeData().weekdays() API
fix #779
1 parent a4979c7 commit 287fed6

File tree

2 files changed

+19
-12
lines changed

2 files changed

+19
-12
lines changed
 

‎src/plugin/localeData/index.js

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export default (o, c, dayjs) => { // locale needed later
22
const proto = c.prototype
33
const getShort = (ins, target, full, num) => {
4-
const locale = ins.$locale()
4+
const locale = ins.name ? ins : ins.$locale()
55
if (!locale[target]) {
66
return locale[full].map(f => f.substr(0, num))
77
}
@@ -28,7 +28,12 @@ export default (o, c, dayjs) => { // locale needed later
2828
dayjs.localeData = () => {
2929
const localeObject = dayjs.Ls[dayjs.locale()]
3030
return {
31-
firstDayOfWeek: () => localeObject.weekStart || 0
31+
firstDayOfWeek: () => localeObject.weekStart || 0,
32+
weekdays: () => localeObject.weekdays,
33+
weekdaysShort: () => getShort(localeObject, 'weekdaysShort', 'weekdays', 3),
34+
weekdaysMin: () => getShort(localeObject, 'weekdaysMin', 'weekdays', 2),
35+
months: () => localeObject.months,
36+
monthsShort: () => getShort(localeObject, 'monthsShort', 'months', 3)
3237
}
3338
}
3439
}

‎test/plugin/localeData.test.js

+12-10
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,16 @@ it('Instance localeData', () => {
3838

3939

4040
it('Global localeData', () => {
41-
dayjs.locale('zh-cn')
42-
moment.locale('zh-cn')
43-
let dayjsLocaleData = dayjs.localeData()
44-
let momentLocaleData = moment.localeData()
45-
expect(dayjsLocaleData.firstDayOfWeek()).toBe(momentLocaleData.firstDayOfWeek())
46-
dayjs.locale('en')
47-
moment.locale('en')
48-
dayjsLocaleData = dayjs.localeData()
49-
momentLocaleData = moment.localeData()
50-
expect(dayjsLocaleData.firstDayOfWeek()).toBe(momentLocaleData.firstDayOfWeek())
41+
['zh-cn', 'en'].forEach((lo) => {
42+
dayjs.locale(lo)
43+
moment.locale(lo)
44+
const dayjsLocaleData = dayjs.localeData()
45+
const momentLocaleData = moment.localeData()
46+
expect(dayjsLocaleData.firstDayOfWeek()).toBe(momentLocaleData.firstDayOfWeek())
47+
expect(dayjsLocaleData.months()).toEqual(momentLocaleData.months())
48+
expect(dayjsLocaleData.monthsShort()).toEqual(momentLocaleData.monthsShort())
49+
expect(dayjsLocaleData.weekdays()).toEqual(momentLocaleData.weekdays())
50+
expect(dayjsLocaleData.weekdaysShort()).toEqual(momentLocaleData.weekdaysShort())
51+
expect(dayjsLocaleData.weekdaysMin()).toEqual(momentLocaleData.weekdaysMin())
52+
})
5153
})

0 commit comments

Comments
 (0)
Please sign in to comment.