]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
[feature] add support for [YYYY] as ISO8601 format (#4470)
authorMax Edinarkhov <medinarkhov@spendvision.com>
Sat, 25 Apr 2020 19:18:37 +0000 (07:18 +1200)
committerGitHub <noreply@github.com>
Sat, 25 Apr 2020 19:18:37 +0000 (22:18 +0300)
* [feature] add support for [YYYY] as ISO8601 format (issue #3918) (#4470)

* [feature] add support for [YYYY] as ISO8601 format (issue #3918) (#4470)

revert support for extended years [+/-YYYYYY], it needs more discussion and work

src/lib/create/from-string.js
src/test/moment/create.js

index bab65a85896e37d394f64b9d67027ce571b277e8..fc748b5a382b6b86439fd3339cd9fb7de237103d 100644 (file)
@@ -10,6 +10,7 @@ import {defaultLocaleWeekdaysShort} from '../units/day-of-week';
 // 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 or +00)
 var extendedIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
 var basicIsoRegex = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/;
+var yearIsoRegex = /^\s*(\d{4})$/;
 
 var tzRegex = /Z|[+-]\d\d(?::?\d\d)?/;
 
@@ -25,7 +26,8 @@ var isoDates = [
     // YYYYMM is NOT allowed by the standard
     ['GGGG[W]WWE', /\d{4}W\d{3}/],
     ['GGGG[W]WW', /\d{4}W\d{2}/, false],
-    ['YYYYDDD', /\d{7}/]
+    ['YYYYDDD', /\d{7}/],
+    ['YYYY', /\d{4}/, false]
 ];
 
 // iso time formats and regexes
@@ -47,7 +49,7 @@ var aspNetJsonRegex = /^\/?Date\((\-?\d+)/i;
 export function configFromISO(config) {
     var i, l,
         string = config._i,
-        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),
+        match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string) || yearIsoRegex.exec(string),
         allowTime, dateFormat, timeFormat, tzFormat;
 
     if (match) {
index 956e6d1a33d0050736a038cb7b8efddce06dffb0..e9ec4fb25a8c1a3ab8331a0f611994b76d8d4dcf 100644 (file)
@@ -576,6 +576,8 @@ test('parsing iso', function (assert) {
     minute = pad(4 + minOffset),
 
     formats = [
+        ['2011',                          '2011-01-01T00:00:00.000' + tz],
+        ['2011-10',                       '2011-10-01T00:00:00.000' + tz],
         ['2011-10-08',                    '2011-10-08T00:00:00.000' + tz],
         ['2011-10-08T18',                 '2011-10-08T18:00:00.000' + tz],
         ['2011-10-08T18:04',              '2011-10-08T18:04:00.000' + tz],