]> git.ipfire.org Git - thirdparty/moment.git/commitdiff
Add Hmm and Hmmss tokens 2700/head
authorIskren Chernev <iskren.chernev@gmail.com>
Mon, 9 Nov 2015 02:47:30 +0000 (18:47 -0800)
committerIskren Chernev <iskren.chernev@gmail.com>
Mon, 9 Nov 2015 02:47:30 +0000 (18:47 -0800)
src/lib/format/format.js
src/lib/units/hour.js
src/test/moment/create.js
src/test/moment/format.js

index 6c1e46d58e21602fce79ae072ea110ce769000cf..773bbff46b11dd6af8529a1eb4abff2cb9b20f41 100644 (file)
@@ -1,6 +1,6 @@
 import zeroFill from '../utils/zero-fill';
 
-export var formattingTokens = /(\[[^\[]*\])|(\\)?(hmmss|hmm|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
+export var formattingTokens = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g;
 
 var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
 
index a217573004c96e3a265b1a370c914a430daca7ea..63919de886fb036864a4051b57fb0e49bdb6f8d8 100644 (file)
@@ -26,6 +26,15 @@ addFormatToken('hmmss', 0, 0, function () {
         zeroFill(this.seconds(), 2);
 });
 
+addFormatToken('Hmm', 0, 0, function () {
+    return '' + this.hours() + zeroFill(this.minutes(), 2);
+});
+
+addFormatToken('Hmmss', 0, 0, function () {
+    return '' + this.hours() + zeroFill(this.minutes(), 2) +
+        zeroFill(this.seconds(), 2);
+});
+
 function meridiem (token, lowercase) {
     addFormatToken(token, 0, 0, function () {
         return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);
@@ -54,6 +63,8 @@ addRegexToken('hh', match1to2, match2);
 
 addRegexToken('hmm', match3to4);
 addRegexToken('hmmss', match5to6);
+addRegexToken('Hmm', match3to4);
+addRegexToken('Hmmss', match5to6);
 
 addParseToken(['H', 'HH'], HOUR);
 addParseToken(['a', 'A'], function (input, array, config) {
@@ -78,6 +89,18 @@ addParseToken('hmmss', function (input, array, config) {
     array[SECOND] = toInt(input.substr(pos2));
     getParsingFlags(config).bigHour = true;
 });
+addParseToken('Hmm', function (input, array, config) {
+    var pos = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos));
+    array[MINUTE] = toInt(input.substr(pos));
+});
+addParseToken('Hmmss', function (input, array, config) {
+    var pos1 = input.length - 4;
+    var pos2 = input.length - 2;
+    array[HOUR] = toInt(input.substr(0, pos1));
+    array[MINUTE] = toInt(input.substr(pos1, 2));
+    array[SECOND] = toInt(input.substr(pos2));
+});
 
 // LOCALES
 
index 7d4670a1e404a24d8e2cc34e93b499dc952bae52..e58ca2660d94e9adab340db2e94c1ec804094085 100644 (file)
@@ -1016,4 +1016,12 @@ test('hmm', function (assert) {
     assert.equal(moment('112345', 'hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with hmmss');
     assert.equal(moment('112345a', 'hmmssA', true).format('HH:mm:ss'), '11:23:45', '112345a with hmmssA');
     assert.equal(moment('112345p', 'hmmssA', true).format('HH:mm:ss'), '23:23:45', '112345p with hmmssA');
+
+    assert.equal(moment('023', 'Hmm', true).format('HH:mm:ss'), '00:23:00', '023 with Hmm');
+    assert.equal(moment('123', 'Hmm', true).format('HH:mm:ss'), '01:23:00', '123 with Hmm');
+    assert.equal(moment('1234', 'Hmm', true).format('HH:mm:ss'), '12:34:00', '1234 with Hmm');
+    assert.equal(moment('1534', 'Hmm', true).format('HH:mm:ss'), '15:34:00', '1234 with Hmm');
+    assert.equal(moment('12345', 'Hmmss', true).format('HH:mm:ss'), '01:23:45', '12345 with Hmmss');
+    assert.equal(moment('112345', 'Hmmss', true).format('HH:mm:ss'), '11:23:45', '112345 with Hmmss');
+    assert.equal(moment('172345', 'Hmmss', true).format('HH:mm:ss'), '17:23:45', '112345 with Hmmss');
 });
index f12a62ce64af053a53c6e96bdcd6bae5d531042e..0e33700a8a4de1e57f3e290b29668f9e853ca017 100644 (file)
@@ -381,3 +381,14 @@ test('hmm and hmmss', function (assert) {
     assert.equal(moment('01:34:56', 'HH:mm:ss').format('hmmss'), '13456');
     assert.equal(moment('13:34:56', 'HH:mm:ss').format('hmmss'), '13456');
 });
+
+test('Hmm and Hmmss', function (assert) {
+    assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmm'), '1234');
+    assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmm'), '134');
+    assert.equal(moment('13:34:56', 'HH:mm:ss').format('Hmm'), '1334');
+
+    assert.equal(moment('12:34:56', 'HH:mm:ss').format('Hmmss'), '123456');
+    assert.equal(moment('01:34:56', 'HH:mm:ss').format('Hmmss'), '13456');
+    assert.equal(moment('08:34:56', 'HH:mm:ss').format('Hmmss'), '83456');
+    assert.equal(moment('18:34:56', 'HH:mm:ss').format('Hmmss'), '183456');
+});