diff --git a/moment.js b/moment.js index da8fb89691..868206aadf 100644 --- a/moment.js +++ b/moment.js @@ -1557,6 +1557,14 @@ } } + function map(arr, fn) { + var res = [], i; + for (i = 0; i < arr.length; ++i) { + res.push(fn(arr[i], i)); + } + return res; + } + function makeDateFromInput(config) { var input = config._i, matched; if (input === undefined) { @@ -1568,7 +1576,9 @@ } else if (typeof input === 'string') { makeDateFromString(config); } else if (isArray(input)) { - config._a = input.slice(0); + config._a = map(input.slice(0), function (obj) { + return parseInt(obj, 10); + }); dateFromConfig(config); } else if (typeof(input) === 'object') { dateFromObject(config); diff --git a/test/moment/create.js b/test/moment/create.js index d5d38756f8..a141d669b9 100644 --- a/test/moment/create.js +++ b/test/moment/create.js @@ -936,5 +936,13 @@ exports.create = { moment.parseTwoDigitYear = original; test.done(); } + }, + + 'array with strings' : function (test) { + test.equal(moment(['2014', '7', '31']).isValid(), + true, + 'string array + isValid'); + test.done(); } + };