]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Handle iso format where Z is prefixed with spaces 1294/head
authorIskren Chernev <iskren.chernev@gmail.com>
Fri, 22 Nov 2013 00:02:26 +0000 (16:02 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Fri, 22 Nov 2013 00:36:16 +0000 (16:36 -0800)
In response to #1290

moment.js
test/moment/create.js

index e445d7b1da6fb2f35bada18f6e5eb113eda91a2d..f343687e0b8794bb6ca539bca44d0dc6abcea4a7 100644 (file)
--- a/moment.js
+++ b/moment.js
@@ -56,7 +56,7 @@
 
         // preliminary iso regex
         // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000)
-        isoRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d:?\d\d|Z)?)?$/,
+        isoRegex = /^\s*\d{4}-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d:?\d\d|\s*Z)?)?$/,
 
         isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
 
index 86d6dd79f2b40003abc69f13000d73eaa9ce95ed..54afea0b40a185d27ba92d6a9d9065910c3dc791 100644 (file)
@@ -500,29 +500,32 @@ exports.create = {
 
     "parsing ISO with Z" : function (test) {
         var i, mom, formats = [
-            ['2011-10-08T18:04Z',             '2011-10-08T18:04:00.000'],
-            ['2011-10-08T18:04:20Z',          '2011-10-08T18:04:20.000'],
-            ['2011-10-08T18:04:20.1Z',        '2011-10-08T18:04:20.100'],
-            ['2011-10-08T18:04:20.11Z',       '2011-10-08T18:04:20.110'],
-            ['2011-10-08T18:04:20.111Z',      '2011-10-08T18:04:20.111'],
-            ['2011-W40-6T18Z',                '2011-10-08T18:00:00.000'],
-            ['2011-W40-6T18:04Z',             '2011-10-08T18:04:00.000'],
-            ['2011-W40-6T18:04:20Z',          '2011-10-08T18:04:20.000'],
-            ['2011-W40-6T18:04:20.1Z',        '2011-10-08T18:04:20.100'],
-            ['2011-W40-6T18:04:20.11Z',       '2011-10-08T18:04:20.110'],
-            ['2011-W40-6T18:04:20.111Z',      '2011-10-08T18:04:20.111'],
-            ['2011-281T18Z',                  '2011-10-08T18:00:00.000'],
-            ['2011-281T18:04Z',               '2011-10-08T18:04:00.000'],
-            ['2011-281T18:04:20Z',            '2011-10-08T18:04:20.000'],
-            ['2011-281T18:04:20Z',            '2011-10-08T18:04:20.000'],
-            ['2011-281T18:04:20.1Z',          '2011-10-08T18:04:20.100'],
-            ['2011-281T18:04:20.11Z',         '2011-10-08T18:04:20.110'],
-            ['2011-281T18:04:20.111Z',        '2011-10-08T18:04:20.111']
+            ['2011-10-08T18:04',             '2011-10-08T18:04:00.000'],
+            ['2011-10-08T18:04:20',          '2011-10-08T18:04:20.000'],
+            ['2011-10-08T18:04:20.1',        '2011-10-08T18:04:20.100'],
+            ['2011-10-08T18:04:20.11',       '2011-10-08T18:04:20.110'],
+            ['2011-10-08T18:04:20.111',      '2011-10-08T18:04:20.111'],
+            ['2011-W40-6T18',                '2011-10-08T18:00:00.000'],
+            ['2011-W40-6T18:04',             '2011-10-08T18:04:00.000'],
+            ['2011-W40-6T18:04:20',          '2011-10-08T18:04:20.000'],
+            ['2011-W40-6T18:04:20.1',        '2011-10-08T18:04:20.100'],
+            ['2011-W40-6T18:04:20.11',       '2011-10-08T18:04:20.110'],
+            ['2011-W40-6T18:04:20.111',      '2011-10-08T18:04:20.111'],
+            ['2011-281T18',                  '2011-10-08T18:00:00.000'],
+            ['2011-281T18:04',               '2011-10-08T18:04:00.000'],
+            ['2011-281T18:04:20',            '2011-10-08T18:04:20.000'],
+            ['2011-281T18:04:20',            '2011-10-08T18:04:20.000'],
+            ['2011-281T18:04:20.1',          '2011-10-08T18:04:20.100'],
+            ['2011-281T18:04:20.11',         '2011-10-08T18:04:20.110'],
+            ['2011-281T18:04:20.111',        '2011-10-08T18:04:20.111']
         ];
 
         for (i = 0; i < formats.length; i++) {
-            mom = moment(formats[i][0]).utc();
-            test.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], "moment should be able to parse ISO in UTC " + formats[i][0]);
+            mom = moment(formats[i][0] + 'Z').utc();
+            test.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], "moment should be able to parse ISO in UTC " + formats[i][0] + 'Z');
+
+            mom = moment(formats[i][0] + ' Z').utc();
+            test.equal(mom.format('YYYY-MM-DDTHH:mm:ss.SSS'), formats[i][1], "moment should be able to parse ISO in UTC " + formats[i][0] + ' Z');
         }
         test.done();
     },