diff --git a/src/plugin/duration/index.js b/src/plugin/duration/index.js index 31ab68572..dad125f11 100644 --- a/src/plugin/duration/index.js +++ b/src/plugin/duration/index.js @@ -28,7 +28,7 @@ const prettyUnit = unit => `${$u.p(unit)}s` class Duration { constructor(input, unit, locale) { this.$d = {} - this.$l = locale || 'en' + this.$l = locale if (unit) { return wrapper(input * unitToMS[prettyUnit(unit)], this) } @@ -172,7 +172,8 @@ export default (option, Dayjs, dayjs) => { $d = dayjs $u = dayjs().$utils() dayjs.duration = function (input, unit) { - return wrapper(input, {}, unit) + const $l = dayjs.locale() + return wrapper(input, { $l }, unit) } dayjs.isDuration = isDuration } diff --git a/test/plugin/duration.test.js b/test/plugin/duration.test.js index d2e4abe6c..d153da43a 100644 --- a/test/plugin/duration.test.js +++ b/test/plugin/duration.test.js @@ -101,6 +101,15 @@ describe('Humanize', () => { expect(dayjs.duration(1, 'minutes').locale('fr').humanize(true)).toBe('dans une minute') expect(dayjs.duration(1, 'minutes').locale('es').humanize(true)).toBe('en un minuto') }) + it('Global Locale', () => { + dayjs.locale('en') + expect(dayjs.duration(1, 'minutes').humanize(true)).toBe('in a minute') + dayjs.locale('fr') + expect(dayjs.duration(1, 'minutes').humanize(true)).toBe('dans une minute') + dayjs.locale('es') + expect(dayjs.duration(1, 'minutes').humanize(true)).toBe('en un minuto') + dayjs.locale('en') + }) }) describe('Clone', () => {