]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
compute monthDiff only for the type that needs it 3854/head
authorKien Pham <shop@kienpham.com>
Tue, 21 Mar 2017 20:00:47 +0000 (13:00 -0700)
committerKien Pham <shop@kienpham.com>
Tue, 21 Mar 2017 20:00:47 +0000 (13:00 -0700)
src/lib/moment/diff.js

index 961cec8ade379fcf5a50207d6439275f4bc73d31..85254dfc69884b76be8c7abf0ecfea1c43fe2642 100644 (file)
@@ -21,19 +21,16 @@ export function diff (input, units, asFloat) {
 
     units = normalizeUnits(units);
 
-    output = monthDiff(this, that);
-    delta = this - that;
-
     switch (units) {
-        case 'year': output = output / 12; break;
-        case 'month': break;
-        case 'quarter': output = output / 3; break;
-        case 'second': output = delta / 1e3; break; // 1000
-        case 'minute': output = delta / 6e4; break; // 1000 * 60
-        case 'hour': output = delta / 36e5; break; // 1000 * 60 * 60
-        case 'day': output = (delta - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
-        case 'week': output = (delta - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
-        default: output = delta;
+        case 'year': output = monthDiff(this, that) / 12; break;
+        case 'month': output = monthDiff(this, that); break;
+        case 'quarter': output = monthDiff(this, that) / 3; break;
+        case 'second': output = (this - that) / 1e3; break; // 1000
+        case 'minute': output = (this - that) / 6e4; break; // 1000 * 60
+        case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60
+        case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst
+        case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst
+        default: output = this - that;
     }
 
     return asFloat ? output : absFloor(output);