diff --git a/src/components/datetime/test/basic/index.ts b/src/components/datetime/test/basic/index.ts
index 8ce2e63bc58..a0569d319f4 100644
--- a/src/components/datetime/test/basic/index.ts
+++ b/src/components/datetime/test/basic/index.ts
@@ -7,7 +7,7 @@ import {ionicBootstrap} from '../../../../../src';
})
class E2EPage {
wwwInvented = '1989';
- time = '13:47';
+ time = '13:47:00';
netscapeReleased = '1994-12-15T13:47:20.789';
operaReleased = '1995-04-15';
firefoxReleased = '2002-09-23T15:03:46.789';
diff --git a/src/components/datetime/test/basic/main.html b/src/components/datetime/test/basic/main.html
index 5d37766333d..2a73c8c7d52 100644
--- a/src/components/datetime/test/basic/main.html
+++ b/src/components/datetime/test/basic/main.html
@@ -87,4 +87,9 @@
{{convertedDate}}
+
+ HH:mm:ss
+
+
+
diff --git a/src/util/datetime-util.ts b/src/util/datetime-util.ts
index 2b72608aed8..007342c258c 100644
--- a/src/util/datetime-util.ts
+++ b/src/util/datetime-util.ts
@@ -66,7 +66,7 @@ export function renderTextFormat(format: string, value: any, date: DateTimeData,
if (format === FORMAT_YY || format === FORMAT_MM ||
format === FORMAT_DD || format === FORMAT_HH ||
- format === FORMAT_mm) {
+ format === FORMAT_mm || format === FORMAT_ss) {
return twoDigit(value);
}
@@ -136,6 +136,12 @@ export function dateValueRange(format: string, min: DateTimeData, max: DateTimeD
opts.push(i);
}
+ } else if (format === FORMAT_ss || format === FORMAT_s) {
+ // seconds
+ for (i = 0; i < 60; i++) {
+ opts.push(i);
+ }
+
} else if (format === FORMAT_A || format === FORMAT_a) {
// AM/PM
opts.push('am', 'pm');
@@ -432,6 +438,8 @@ const FORMAT_hh = 'hh';
const FORMAT_h = 'h';
const FORMAT_mm = 'mm';
const FORMAT_m = 'm';
+const FORMAT_ss = 'ss';
+const FORMAT_s = 's';
const FORMAT_A = 'A';
const FORMAT_a = 'a';
@@ -447,11 +455,13 @@ const FORMAT_KEYS = [
{ f: FORMAT_HH, k: 'hour' },
{ f: FORMAT_hh, k: 'hour' },
{ f: FORMAT_mm, k: 'minute' },
+ { f: FORMAT_ss, k: 'second' },
{ f: FORMAT_M, k: 'month' },
{ f: FORMAT_D, k: 'day' },
{ f: FORMAT_H, k: 'hour' },
{ f: FORMAT_h, k: 'hour' },
{ f: FORMAT_m, k: 'minute' },
+ { f: FORMAT_s, k: 'second' },
{ f: FORMAT_A, k: 'ampm' },
{ f: FORMAT_a, k: 'ampm' },
];
diff --git a/src/util/test/datetime-util.spec.ts b/src/util/test/datetime-util.spec.ts
index 7e9700a6803..4da10dfd733 100644
--- a/src/util/test/datetime-util.spec.ts
+++ b/src/util/test/datetime-util.spec.ts
@@ -114,7 +114,7 @@ describe('convertDataToISO', () => {
expect(str).toEqual('13:47:20.789');
});
- it('should convert DateTimeData to HH:mm:SS string', () => {
+ it('should convert DateTimeData to HH:mm:ss string', () => {
var data: datetime.DateTimeData = {
year: null,
month: null,
@@ -201,6 +201,11 @@ describe('convertFormatToKey', () => {
expect(datetime.convertFormatToKey('m')).toEqual('minute');
});
+ it('should convert second formats to their DateParse key', () => {
+ expect(datetime.convertFormatToKey('ss')).toEqual('second');
+ expect(datetime.convertFormatToKey('s')).toEqual('second');
+ });
+
it('should convert am/pm formats to their DateParse key', () => {
expect(datetime.convertFormatToKey('A')).toEqual('ampm');
expect(datetime.convertFormatToKey('a')).toEqual('ampm');
@@ -317,24 +322,26 @@ describe('parseTemplate', () => {
expect(formats[1]).toEqual('mm');
});
- it('should get formats from template "m mm h hh H HH D DD DDD DDDD M MM MMM MMMM YY YYYY"', () => {
- var formats = datetime.parseTemplate('m mm h hh H HH D DD DDD DDDD M MM MMM MMMM YY YYYY');
- expect(formats[0]).toEqual('m');
- expect(formats[1]).toEqual('mm');
- expect(formats[2]).toEqual('h');
- expect(formats[3]).toEqual('hh');
- expect(formats[4]).toEqual('H');
- expect(formats[5]).toEqual('HH');
- expect(formats[6]).toEqual('D');
- expect(formats[7]).toEqual('DD');
- expect(formats[8]).toEqual('DDD');
- expect(formats[9]).toEqual('DDDD');
- expect(formats[10]).toEqual('M');
- expect(formats[11]).toEqual('MM');
- expect(formats[12]).toEqual('MMM');
- expect(formats[13]).toEqual('MMMM');
- expect(formats[14]).toEqual('YY');
- expect(formats[15]).toEqual('YYYY');
+ it('should get formats from template "s ss m mm h hh H HH D DD DDD DDDD M MM MMM MMMM YY YYYY"', () => {
+ var formats = datetime.parseTemplate('s ss m mm h hh H HH D DD DDD DDDD M MM MMM MMMM YY YYYY');
+ expect(formats[0]).toEqual('s');
+ expect(formats[1]).toEqual('ss');
+ expect(formats[2]).toEqual('m');
+ expect(formats[3]).toEqual('mm');
+ expect(formats[4]).toEqual('h');
+ expect(formats[5]).toEqual('hh');
+ expect(formats[6]).toEqual('H');
+ expect(formats[7]).toEqual('HH');
+ expect(formats[8]).toEqual('D');
+ expect(formats[9]).toEqual('DD');
+ expect(formats[10]).toEqual('DDD');
+ expect(formats[11]).toEqual('DDDD');
+ expect(formats[12]).toEqual('M');
+ expect(formats[13]).toEqual('MM');
+ expect(formats[14]).toEqual('MMM');
+ expect(formats[15]).toEqual('MMMM');
+ expect(formats[16]).toEqual('YY');
+ expect(formats[17]).toEqual('YYYY');
});
it('should get formats from template YYMMMMDDHHmm', () => {