diff --git a/src/plugin/customParseFormat/index.js b/src/plugin/customParseFormat/index.js
--- a/src/plugin/customParseFormat/index.js
+++ b/src/plugin/customParseFormat/index.js
@@ -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) {

diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js
--- a/test/plugin/customParseFormat.test.js
+++ b/test/plugin/customParseFormat.test.js
@@ -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)', () => {
@@ -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', () => {

CustomParseFormat: Issue with parsing dates in 'D-MM-YYYY' format
**Describe the bug**

```
import dayjs from 'dayjs';
import customParseFormat from 'dayjs/plugin/customParseFormat';

dayjs.extend(customParseFormat);

const date = dayjs('21-Dec-18', 'D-MMM-YY').toJSON()
// Date is Sun Jan 21 2018
```

**Expected behavior**
Date is Sun Dec 21 2018

**Information**
 - Day.js Version: v1.8.27 (The issue does not exist on v1.8.26)
 - OS: macOS Catalina
 - Node.js version: v12
 - Time zone: GMT+2 Central European Summer Time


test/timezone.test.js(1) test/timezone.test.js(2) test/timezone.test.js(3) test/timezone.test.js(4)
test/plugin/customParseFormat.test.js