From 77de6a3d4a1a6713c3a5ed64fda79dcd3c27afd7 Mon Sep 17 00:00:00 2001 From: iamkun Date: Sat, 15 Jul 2023 10:51:03 +0800 Subject: [PATCH] fix: duration plugin getter get result 0 instead of undefined (#2369) --- src/plugin/duration/index.js | 2 +- test/plugin/duration.test.js | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/plugin/duration/index.js b/src/plugin/duration/index.js index 000047065..70d49296c 100644 --- a/src/plugin/duration/index.js +++ b/src/plugin/duration/index.js @@ -198,7 +198,7 @@ class Duration { } else { base = this.$d[pUnit] } - return base === 0 ? 0 : base // a === 0 will be true on both 0 and -0 + return base || 0 // a === 0 will be true on both 0 and -0 } add(input, unit, isSubtract) { diff --git a/test/plugin/duration.test.js b/test/plugin/duration.test.js index 7c6c6998a..f2c44156d 100644 --- a/test/plugin/duration.test.js +++ b/test/plugin/duration.test.js @@ -186,6 +186,12 @@ describe('Add', () => { expect(a.add({ days: 5 }).days()).toBe(6) }) +describe('Add to a dayjs()', () => { + const a = dayjs() + const b = dayjs.duration({ hours: 7, minutes: 10 }) + expect(a.add(b)).toEqual(a.add(7, 'hours').add(10, 'minutes')) +}) + test('Add duration', () => { const a = dayjs('2020-10-01') const days = dayjs.duration(2, 'days')