]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Use YYYYYY format in iso string for big and negative years 1349/head
authorIskren Chernev <iskren.chernev@gmail.com>
Wed, 11 Dec 2013 09:18:48 +0000 (01:18 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Wed, 11 Dec 2013 09:18:48 +0000 (01:18 -0800)
moment.js
test/moment/format.js

index cd6be16d5093efad9b2eb040471a32144f39e223..da3e0d1dcc5a02cd6a84be386e515139b5c98acb 100644 (file)
--- a/moment.js
+++ b/moment.js
         },
 
         toISOString : function () {
-            return formatMoment(moment(this).utc(), 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+            var m = moment(this).utc();
+            if (0 < m.year() && m.year() <= 9999) {
+                return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+            } else {
+                return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
+            }
         },
 
         toArray : function () {
index 1207da34396cd10f09cfae746e69ffc6abf4f982..5202769379dc41bfda82fe89a606ed25224c9263 100644 (file)
@@ -160,9 +160,21 @@ exports.format = {
     },
 
     "toISOString" : function (test) {
+        test.expect(4);
         var date = moment.utc("2012-10-09T20:30:40.678");
 
         test.equal(date.toISOString(), "2012-10-09T20:30:40.678Z", "should output ISO8601 on moment.fn.toISOString");
+
+        // big years
+        date = moment.utc("+020123-10-09T20:30:40.678");
+        test.equal(date.toISOString(), "+020123-10-09T20:30:40.678Z", "ISO8601 format on big positive year");
+        // negative years
+        date = moment.utc("-000001-10-09T20:30:40.678");
+        test.equal(date.toISOString(), "-000001-10-09T20:30:40.678Z", "ISO8601 format on big positive year");
+        // big negative years
+        date = moment.utc("-020123-10-09T20:30:40.678");
+        test.equal(date.toISOString(), "-020123-10-09T20:30:40.678Z", "ISO8601 format on big positive year");
+
         test.done();
     },