]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Fix zerofill for negative numbers
authorIskren Chernev <iskren.chernev@gmail.com>
Wed, 11 Dec 2013 08:59:05 +0000 (00:59 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Wed, 11 Dec 2013 08:59:05 +0000 (00:59 -0800)
moment.js
test/moment/format.js

index 7dd6c9ab42c24c868eb1624237fc0ad74dfc1f1e..4ea001f4af75ece2dd8e3c0c0be4dc2f7bd56aeb 100644 (file)
--- a/moment.js
+++ b/moment.js
     // left zero fill a number
     // see http://jsperf.com/left-zero-filling for performance comparison
     function leftZeroFill(number, targetLength) {
-        var output = number + '';
+        var output = Math.abs(number) + '',
+            sign = number >= 0;
+
         while (output.length < targetLength) {
             output = '0' + output;
         }
-        return output;
+        return (sign ? '' : '-') + output;
     }
 
     // helper function for _.addTime and _.subtractTime
index 64cb84ac7de97eeb15a6acef9649942272aa0e42..8041d61f0489afdc53fe765d444f52dc6b747d07 100644 (file)
@@ -28,6 +28,17 @@ exports.format = {
         test.done();
     },
 
+    "handle negative years" : function (test) {
+        test.expect(2);
+
+        moment.lang('en');
+        var m = moment('-000001-01-01T00:00:00.000Z');
+        test.equal(m.format('YY'), '-02', 'YY with negative year');
+        test.equal(m.format('YYYY'), '-0002', 'YYYY with negative year');
+
+        test.done();
+    },
+
     "format milliseconds" : function (test) {
         test.expect(6);
         var b = moment(new Date(2009, 1, 14, 15, 25, 50, 123));