]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
[bugfix] Uniform handling of day/date when 0 is used (#5098)
authorJosh Nelsson-Smith <j.nelssonsmith@gmail.com>
Thu, 23 Apr 2020 20:50:28 +0000 (06:50 +1000)
committerGitHub <noreply@github.com>
Thu, 23 Apr 2020 20:50:28 +0000 (23:50 +0300)
src/lib/create/from-object.js
src/test/moment/create.js

index c0bfe9f8d5d3ddaf610bb5d3ae7d9fe8009158bc..eb57d51d35486905998dd1ca91483294709c1ebd 100644 (file)
@@ -8,7 +8,9 @@ export function configFromObject(config) {
     }
 
     var i = normalizeObjectUnits(config._i);
-    config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {
+
+    var dayOrDate = i.day === undefined ? i.date : i.day;
+    config._a = map([i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond], function (obj) {
         return obj && parseInt(obj, 10);
     });
 
index da5e3c60493e5a074d3fd7fc97bf39b1235e26ba..7f06dedfc3dfa1314ef98ad26fee42368973e37d 100644 (file)
@@ -47,6 +47,13 @@ test('object', function (assert) {
     }
 });
 
+test('invalid date for object with zero value date or day keys', function (assert) {
+    assert.equal(moment({date: '0'}).format(), 'Invalid date');
+    assert.equal(moment({date: 0}).format(), 'Invalid date');
+    assert.equal(moment({day: '0'}).format(), 'Invalid date');
+    assert.equal(moment({day: 0}).format(), 'Invalid date');
+});
+
 test('multi format array copying', function (assert) {
     var importantArray = ['MM/DD/YYYY', 'YYYY-MM-DD', 'MM-DD-YYYY'];
     moment('1999-02-13', importantArray);