From: Tuan Nguyen Date: Sun, 17 Dec 2017 00:28:21 +0000 (+1100) Subject: [feature] add format constants to support output to HTML5 input type formats (see... X-Git-Tag: 2.20.0~15 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0591fc0573762d4c29b5117b30181c9d6a2798a4;p=thirdparty%2Fmoment.git [feature] add format constants to support output to HTML5 input type formats (see #3928) (#4154) --- diff --git a/src/moment.js b/src/moment.js index c02396288..1f97597bf 100644 --- a/src/moment.js +++ b/src/moment.js @@ -79,4 +79,17 @@ moment.relativeTimeThreshold = relativeTimeThreshold; moment.calendarFormat = getCalendarFormat; moment.prototype = fn; +// currently HTML5 input type only supports 24-hour formats +moment.HTML5_FMT = { + DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // + DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // + DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // + DATE: 'YYYY-MM-DD', // + TIME: 'HH:mm', // + TIME_SECONDS: 'HH:mm:ss', // + TIME_MS: 'HH:mm:ss.SSS', // + WEEK: 'YYYY-[W]WW', // + MONTH: 'YYYY-MM' // +}; + export default moment; diff --git a/src/test/moment/format.js b/src/test/moment/format.js index 195469a78..a637d51b2 100644 --- a/src/test/moment/format.js +++ b/src/test/moment/format.js @@ -4,6 +4,19 @@ import moment from '../../moment'; module('format'); +test('format using constants', function (assert) { + var m = moment('2017-09-01T23:40:40.678'); + assert.equal(m.format(moment.HTML5_FMT.DATETIME_LOCAL), '2017-09-01T23:40', 'datetime local format constant'); + assert.equal(m.format(moment.HTML5_FMT.DATETIME_LOCAL_SECONDS), '2017-09-01T23:40:40', 'datetime local format constant'); + assert.equal(m.format(moment.HTML5_FMT.DATETIME_LOCAL_MS), '2017-09-01T23:40:40.678', 'datetime local format constant with seconds and millis'); + assert.equal(m.format(moment.HTML5_FMT.DATE), '2017-09-01', 'date format constant'); + assert.equal(m.format(moment.HTML5_FMT.TIME), '23:40', 'time format constant'); + assert.equal(m.format(moment.HTML5_FMT.TIME_SECONDS), '23:40:40', 'time format constant with seconds'); + assert.equal(m.format(moment.HTML5_FMT.TIME_MS), '23:40:40.678', 'time format constant with seconds and millis'); + assert.equal(m.format(moment.HTML5_FMT.WEEK), '2017-W35', 'week format constant'); + assert.equal(m.format(moment.HTML5_FMT.MONTH), '2017-09', 'month format constant'); +}); + test('format YY', function (assert) { var b = moment(new Date(2009, 1, 14, 15, 25, 50, 125)); assert.equal(b.format('YY'), '09', 'YY ---> 09');