0

我正在寻找一种基于用户选择在 ngbDatepicker 控件上切换不同日期格式化程序(例如 mm-dd-yyyy / dd-mm-yyyy)的方法。

任何想法/帮助表示赞赏。

4

1 回答 1

1

当然(不可能是什么)。但是之前有必要你不了解 DateParserFormater 和 DateAdapter在stackoverflow中看到这个问题

在您的情况下,您只需要使用 CustomDateParseFormat

好吧,我们唯一需要的是函数 parse/format 和 fromModel/toModel 依赖于一个变量。我没有找到一个很好的方法也注入一个服务

@Injectable({
  providedIn: 'root',
})
export class MaskController{
  mask:string="yyyy/MM/dd"
  public setMask(mask)
  {
    this.mask=mask;
  }
}

而我们的 CustomDateParserFormatter 在构造函数中注入

@Injectable()
export class CustomDateParserFormatter {
  constructor(private maskController:MaskController){}
  get mask()
  {
    return this.maskController.mask;
  }
   ...
}

好吧,我们唯一需要的是根据“掩码”的值更改我们的函数,以及何时调用

maskController.setMask(...)

我们的 ngbDatePicker 按我们的意愿工作。Y在stackblitz中举了一个例子(只有两个“掩码”允许dd/MM/yyyy和yyyy/MM/dd)

注意:在 stackblitz 中,我也更改了 dateFormat。根本不包括在提供者 CustomDateAdapter

于 2019-06-29T12:47:41.253 回答