diff --git a/src/plugin/utc/index.js b/src/plugin/utc/index.js index 722ae552b..5fb049793 100644 --- a/src/plugin/utc/index.js +++ b/src/plugin/utc/index.js @@ -112,6 +112,9 @@ export default (option, Dayjs, dayjs) => { } const oldDiff = proto.diff proto.diff = function (input, units, float) { + if (this.$u === input.$u) { + return oldDiff.call(this, input, units, float) + } const localThis = this.local() const localInput = dayjs(input).local() return oldDiff.call(localThis, localInput, units, float) diff --git a/test/timezone.test.js b/test/timezone.test.js index 9c0926f96..13110166d 100644 --- a/test/timezone.test.js +++ b/test/timezone.test.js @@ -62,3 +62,11 @@ it('UTC and utcOffset', () => { expect(moment.utc(test2).utcOffset(-60).format()) .toBe(dayjs.utc(test2).utcOffset(-60).format()) }) + +it('UTC diff in DST', () => { + // DST till 2020-10-25 + const day1 = dayjs.utc('20201023') // in DST + const day2 = dayjs.utc('20201026') + expect(day1.diff(day2, 'd')) + .toBe(-3) +})