From: Kunal Marwaha Date: Sat, 25 Apr 2020 20:50:48 +0000 (-0700) Subject: [bugfix] Force four digits in Y token (#3846) X-Git-Tag: 2.25.0~39 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=831cfd6183fdcaa446f82ef4bf9e42b0078bb283;p=thirdparty%2Fmoment.git [bugfix] Force four digits in Y token (#3846) --- diff --git a/src/lib/units/year.js b/src/lib/units/year.js index ccbad583e..3384aefad 100644 --- a/src/lib/units/year.js +++ b/src/lib/units/year.js @@ -8,12 +8,13 @@ import { isLeapYear } from '../utils/is-leap-year'; import { hooks } from '../utils/hooks'; import { YEAR } from './constants'; import toInt from '../utils/to-int'; +import zeroFill from '../utils/zero-fill'; // FORMATTING addFormatToken('Y', 0, 0, function () { var y = this.year(); - return y <= 9999 ? '' + y : '+' + y; + return y <= 9999 ? zeroFill(y, 4) : '+' + y; }); addFormatToken(0, ['YY', 2], 0, function () { diff --git a/src/test/moment/format.js b/src/test/moment/format.js index c3ca663d9..cb5b8c5a7 100644 --- a/src/test/moment/format.js +++ b/src/test/moment/format.js @@ -517,10 +517,10 @@ test('k and kk', function (assert) { test('Y token', function (assert) { assert.equal(moment('2010-01-01', 'YYYY-MM-DD', true).format('Y'), '2010', 'format 2010 with Y'); - assert.equal(moment('-123-01-01', 'Y-MM-DD', true).format('Y'), '-123', 'format -123 with Y'); + assert.equal(moment('-123-01-01', 'Y-MM-DD', true).format('Y'), '-0123', 'format -123 with Y'); assert.equal(moment('12345-01-01', 'Y-MM-DD', true).format('Y'), '+12345', 'format 12345 with Y'); - assert.equal(moment('0-01-01', 'Y-MM-DD', true).format('Y'), '0', 'format 0 with Y'); - assert.equal(moment('1-01-01', 'Y-MM-DD', true).format('Y'), '1', 'format 1 with Y'); + assert.equal(moment('0-01-01', 'Y-MM-DD', true).format('Y'), '0000', 'format 0 with Y'); + assert.equal(moment('1-01-01', 'Y-MM-DD', true).format('Y'), '0001', 'format 1 with Y'); assert.equal(moment('9999-01-01', 'Y-MM-DD', true).format('Y'), '9999', 'format 9999 with Y'); assert.equal(moment('10000-01-01', 'Y-MM-DD', true).format('Y'), '+10000', 'format 10000 with Y'); });