Angular 6 使用 'h' 作为时间分隔符
Angular 6 using 'h' as time separator
是否有任何内置的简单方法可以使用 'h' 作为 hours/minutes 分隔符?我正在尝试按照以下方式执行类似“12h45”的操作:
对于其他国家来说这很容易,例如
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({
name: 'dateFormat'
})
export class DateFormatPipe extends DatePipe implements PipeTransform {
transform(value: any, args?: any): any {
switch (args) {
case 'en': {
return super.transform(value, 'MM/dd/yyyy h:mm a');
}
case 'fr': {
return super.transform(value, 'dd/MM/yyyy HH:mm'); // <--- find proper separator
}
case 'de': {
return super.transform(value, 'dd.MM.yyyy HH:mm');
}
case 'es': {
return super.transform(value, 'yyyy/MM/dd hh:MM');
}
}
}
}
注意:所选日期格式可能不正确或不符合日常使用,这仅用于演示目的。
不,没有使用 'h' 作为分隔符的内置解决方案。虽然,如您所见 here,transform()
方法总是 return string
或 null
。您可以利用这一点并使用 .replace()
方法将分号替换为 h 字母:
case 'fr': {
const transformedDate = super.transform(value, 'dd/MM/yyyy HH:mm');
return transformedDate?.replace(':', 'h');
}
您也可以执行以下两种操作之一:
super.transform(value, 'H\'h\'mm');
super.transform(value, "H\'h\'mm");
格式字符串中用单引号引起来的任何内容都按原样显示。因此,如果 value
有时间作为 1:15pm,这将 return 13h15
。
看到它在这方面的工作fiddle:https://stackblitz.com/edit/angular-wvtdpw
是否有任何内置的简单方法可以使用 'h' 作为 hours/minutes 分隔符?我正在尝试按照以下方式执行类似“12h45”的操作:
对于其他国家来说这很容易,例如
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({
name: 'dateFormat'
})
export class DateFormatPipe extends DatePipe implements PipeTransform {
transform(value: any, args?: any): any {
switch (args) {
case 'en': {
return super.transform(value, 'MM/dd/yyyy h:mm a');
}
case 'fr': {
return super.transform(value, 'dd/MM/yyyy HH:mm'); // <--- find proper separator
}
case 'de': {
return super.transform(value, 'dd.MM.yyyy HH:mm');
}
case 'es': {
return super.transform(value, 'yyyy/MM/dd hh:MM');
}
}
}
}
注意:所选日期格式可能不正确或不符合日常使用,这仅用于演示目的。
不,没有使用 'h' 作为分隔符的内置解决方案。虽然,如您所见 here,transform()
方法总是 return string
或 null
。您可以利用这一点并使用 .replace()
方法将分号替换为 h 字母:
case 'fr': {
const transformedDate = super.transform(value, 'dd/MM/yyyy HH:mm');
return transformedDate?.replace(':', 'h');
}
您也可以执行以下两种操作之一:
super.transform(value, 'H\'h\'mm');
super.transform(value, "H\'h\'mm");
格式字符串中用单引号引起来的任何内容都按原样显示。因此,如果 value
有时间作为 1:15pm,这将 return 13h15
。
看到它在这方面的工作fiddle:https://stackblitz.com/edit/angular-wvtdpw