Skip to content

Commit

Permalink
fix: Fix CustomParseFormat plugin month index error (#918)
Browse files Browse the repository at this point in the history
fix #915
  • Loading branch information
iamkun authored May 28, 2020
1 parent a08756e commit fa2ec7f
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 6 deletions.
12 changes: 6 additions & 6 deletions src/plugin/customParseFormat/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,19 @@ const expressions = {
MMM: [matchWord, function (input) {
const months = getLocalePart('months')
const monthsShort = getLocalePart('monthsShort')
const matchIndex = (monthsShort || months.map(_ => _.substr(0, 3))).indexOf(input)
if (matchIndex < 0) {
const matchIndex = (monthsShort || months.map(_ => _.substr(0, 3))).indexOf(input) + 1
if (matchIndex < 1) {
throw new Error()
}
this.month = (matchIndex + 1) % 12
this.month = (matchIndex % 12) || matchIndex
}],
MMMM: [matchWord, function (input) {
const months = getLocalePart('months')
const matchIndex = months.indexOf(input)
if (matchIndex < 0) {
const matchIndex = months.indexOf(input) + 1
if (matchIndex < 1) {
throw new Error()
}
this.month = (matchIndex + 1) % 12
this.month = (matchIndex % 12) || matchIndex
}],
Y: [matchSigned, addInput('year')],
YY: [match2, function (input) {
Expand Down
6 changes: 6 additions & 0 deletions test/plugin/customParseFormat.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ it('parse string for MMM month format', () => {
const input = '4/Mar/2019:11:16:26 +0800'
const format = 'D/MMM/YYYY:H:m:s zz'
expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf())
const input2 = '21-Dec-18'
const format2 = 'D-MMM-YY'
expect(dayjs(input2, format2).valueOf()).toBe(moment(input2, format2).valueOf())
})

it('parse string January (getMonth() = 0)', () => {
Expand Down Expand Up @@ -135,6 +138,9 @@ it('parse month from string', () => {
const input = '2018 February 03'
const format = 'YYYY MMMM DD'
expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf())
const input2 = '21-December-18'
const format2 = 'D-MMMM-YY'
expect(dayjs(input2, format2).valueOf()).toBe(moment(input2, format2).valueOf())
})

it('parse month from short string', () => {
Expand Down

0 comments on commit fa2ec7f

Please sign in to comment.