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' 作为分隔符的内置解决方案。虽然,如您所见 heretransform() 方法总是 return stringnull。您可以利用这一点并使用 .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