From: Ash Searle Date: Tue, 11 Jul 2017 18:46:43 +0000 (+0100) Subject: Fix moment issue #3997 X-Git-Tag: 2.19.0~9^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=01f84a1fa205b3fe493cb9422cab89dfaf97997a;p=thirdparty%2Fmoment.git Fix moment issue #3997 --- diff --git a/src/lib/moment/add-subtract.js b/src/lib/moment/add-subtract.js index b9e86a69d..e758b5d46 100644 --- a/src/lib/moment/add-subtract.js +++ b/src/lib/moment/add-subtract.js @@ -36,14 +36,14 @@ export function addSubtract (mom, duration, isAdding, updateOffset) { updateOffset = updateOffset == null ? true : updateOffset; - if (milliseconds) { - mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); + if (months) { + setMonth(mom, get(mom, 'Month') + months * isAdding); } if (days) { set(mom, 'Date', get(mom, 'Date') + days * isAdding); } - if (months) { - setMonth(mom, get(mom, 'Month') + months * isAdding); + if (milliseconds) { + mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding); } if (updateOffset) { hooks.updateOffset(mom, days || months); diff --git a/src/test/moment/duration.js b/src/test/moment/duration.js index c7e0ea377..624d77787 100644 --- a/src/test/moment/duration.js +++ b/src/test/moment/duration.js @@ -611,6 +611,13 @@ test('add', function (assert) { assert.equal(d.add({h: 23, m: 59})._milliseconds, 23 * 60 * 60 * 1000 + 59 * 60 * 1000 + 10000, 'Add hour:minute'); }); +test('add to moment', function (assert) { + var d = moment.duration({months: 1, seconds: -1}); + var m = moment('2017-03-01').add(d); + assert.equal(m.month(), 2, 'Adds months before time'); + assert.equal(m.date(), 31, 'Adds time after months'); +}); + test('add and bubble', function (assert) { var d;