diff --git a/src/plugin/customParseFormat/index.js b/src/plugin/customParseFormat/index.js index ee7bd5cfb..cffbffbbb 100644 --- a/src/plugin/customParseFormat/index.js +++ b/src/plugin/customParseFormat/index.js @@ -47,13 +47,13 @@ const expressions = { this.milliseconds = +input }], s: [match1to2, addInput('seconds')], - ss: [match2, addInput('seconds')], + ss: [match1to2, addInput('seconds')], m: [match1to2, addInput('minutes')], - mm: [match2, addInput('minutes')], + mm: [match1to2, addInput('minutes')], H: [match1to2, addInput('hours')], h: [match1to2, addInput('hours')], - HH: [match2, addInput('hours')], - hh: [match2, addInput('hours')], + HH: [match1to2, addInput('hours')], + hh: [match1to2, addInput('hours')], D: [match1to2, addInput('day')], DD: [match2, addInput('day')], M: [match1to2, addInput('month')], diff --git a/test/plugin/customParseFormat.test.js b/test/plugin/customParseFormat.test.js index 1b2bef219..eb2f2204b 100644 --- a/test/plugin/customParseFormat.test.js +++ b/test/plugin/customParseFormat.test.js @@ -73,12 +73,30 @@ it('timezone with no hour', () => { expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) }) -it('parse just hh:mm)', () => { +it('parse hh:mm', () => { const input = '12:00' const format = 'hh:mm' expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) }) +it('parse HH:mm:ss', () => { + const input = '00:27:21' + const format = 'HH:mm:ss' + expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) +}) + +it('parse HH:mm:ss but only one digit', () => { + const input = '0:0:1' + const format = 'HH:mm:ss' + expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) +}) + +it('parse hh:mm:ss but only one digit', () => { + const input = '0:0:1' + const format = 'hh:mm:ss' + expect(dayjs(input, format).valueOf()).toBe(moment(input, format).valueOf()) +}) + it('fails with an invalid format', () => { const input = '2018-05-02 12:00 PM' const format = 'C'