Угловой 6 с использованием «ч» в качестве разделителя времени - PullRequest
0 голосов
/ 31 августа 2018

Есть ли какой-нибудь встроенный простой способ использовать 'h' в качестве разделителя часов / минут? Я пытаюсь сделать что-то вроде этого "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');
      }
    }
  }
}

ПРИМЕЧАНИЕ: выбранные форматы даты могут не соответствовать действительности или использоваться каждый день, это только для демонстрационных целей.

Ответы [ 2 ]

0 голосов
/ 31 августа 2018

Вы также можете сделать любой из этих двух:

super.transform(value, 'H\'h\'mm');
super.transform(value, "H\'h\'mm");

Все в строке формата, заключенной в одинарные кавычки, отображается как есть. Так что если value имеет время как 13:15, это вернет 13h15.

Посмотри, как работает эта скрипка: https://stackblitz.com/edit/angular-wvtdpw

0 голосов
/ 31 августа 2018

Нет, нет встроенного решения для использования 'h' в качестве разделителя. Хотя, как вы можете видеть здесь , методы transform() всегда возвращают либо string, либо null. Вы можете использовать это и использовать метод .replace(), чтобы заменить точку с запятой буквой h:

case 'fr': {
    let transformedDate = super.transform(value, 'dd/MM/yyyy HH:mm');
    return transformedDate && transformedDate.replace(':', 'h');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...