]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
allowing customized year parsing
authorIsaac Cambron <isaac@isaaccambron.com>
Sat, 22 Mar 2014 21:21:07 +0000 (17:21 -0400)
committerIsaac Cambron <isaac@isaaccambron.com>
Sat, 22 Mar 2014 21:21:07 +0000 (17:21 -0400)
moment.js
test/moment/create.js

index 0018faebf9fc17fe0486978732e7e5a4ed5197ce..41a241ec4a07bdc13f26001fedc14637bad490d5 100644 (file)
--- a/moment.js
+++ b/moment.js
             break;
         // YEAR
         case 'YY' :
-            datePartArray[YEAR] = toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+            datePartArray[YEAR] = moment.parseTwoDigitYear(input);
             break;
         case 'YYYY' :
         case 'YYYYY' :
         return moment.apply(null, arguments).parseZone();
     };
 
+    moment.parseTwoDigitYear = function(input) {
+      return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
+    }
+
     /************************************
         Moment Prototype
     ************************************/
index c0a3a606c5ea76b31504f2fff8f36f2c9a9d68ff..70e36dae3b6ac861f3f7f8e8c338f0eebb2258ca 100644 (file)
@@ -811,5 +811,27 @@ exports.create = {
             moment.lang('en');
             test.done();
         }
+    },
+
+    'parsing with customized two-digit year' : function (test) {
+      var original = moment.parseTwoDigitYear;
+      try {
+        test.equal(moment('68', 'YY').year(), 2068);
+        test.equal(moment('69', 'YY').year(), 1969);
+        moment.parseTwoDigitYear = function(input){
+          return +input + (+input > 30 ? 1900 : 2000);
+        };
+        test.equal(moment('68', 'YY').year(), 1968);
+        test.equal(moment('67', 'YY').year(), 1967);
+        test.equal(moment('31', 'YY').year(), 1931);
+        test.equal(moment('30', 'YY').year(), 2030);
+
+      }
+      finally {
+        moment.parseTwoDigitYear = original;
+        test.done();
+      }
+
     }
+
 };