bug(datePipe): date format pipe's 2-digit interpretation of minutes and seconds (#9338)

Closes #9333
This commit is contained in:
Andrei Tserakhau
2016-06-18 19:03:58 +03:00
committed by Victor Berchet
parent dee1b774f2
commit 2d60ff14ae
2 changed files with 23 additions and 12 deletions

View File

@ -76,9 +76,9 @@ var DATE_FORMATS = {
h: hourExtracter(datePartGetterFactory(hour12Modify(digitCondition('hour', 1), true))),
jj: datePartGetterFactory(digitCondition('hour', 2)),
j: datePartGetterFactory(digitCondition('hour', 1)),
mm: datePartGetterFactory(digitCondition('minute', 2)),
mm: digitModifier(datePartGetterFactory(digitCondition('minute', 2))),
m: datePartGetterFactory(digitCondition('minute', 1)),
ss: datePartGetterFactory(digitCondition('second', 2)),
ss: digitModifier(datePartGetterFactory(digitCondition('second', 2))),
s: datePartGetterFactory(digitCondition('second', 1)),
// while ISO 8601 requires fractions to be prefixed with `.` or `,`
// we can be just safely rely on using `sss` since we currently don't support single or two digit
@ -102,6 +102,15 @@ var DATE_FORMATS = {
};
function digitModifier(inner: (date: Date, locale: string) => string): (
date: Date, locale: string) => string {
return function(date: Date, locale: string): string {
var result = inner(date, locale);
return result.length == 1 ? '0' + result : result;
};
}
function hourClockExtracter(inner: (date: Date, locale: string) => string): (
date: Date, locale: string) => string {
return function(date: Date, locale: string): string {