如何更改窗体内Angular ngx-bootstrap的datepicker中的日期格式

Fra*_*rzi 9 datepicker angular2-ngmodel ngx-bootstrap angular angular-forms

在Angular 4应用程序中使用ngx-bootstrap Datepicker,

我知道通常你可以这样指定日期格式:

<input id="from" name="from"
       bsDatepicker [(bsValue)]="myModel"
       value="{{ myModel | date:'yyyy-MM-dd'}}">
Run Code Online (Sandbox Code Playgroud)

但是这次我在一个模板驱动的Angular形式里面,所以我的输入没有绑定到myModel上面例子中的变量,但它只是绑定到表单:

<input id="from" name="from"
       bsDatepicker ngModel>
Run Code Online (Sandbox Code Playgroud)

那么在这种情况下如何指定日期格式?

编辑:看起来实现这一点的方法是newVar在组件内创建一个新变量,然后将其绑定到[(bsValue)]="newVar":

<input id="from" name="from"
       bsDatepicker ngModel
       [(bsValue)]="newVar"
       value="{{ newVar | date:'yyyy-MM-dd' }}">
Run Code Online (Sandbox Code Playgroud)

不过我想知道是否有更好的解决方案.

小智 18

[(bsValue)]始终可以使用bsDatepicker,是否输入字段

如果你想改变一个字段的格式那么

[(bsValue)]="newVar" value="{{ newVar | date:'yyyy-MM-dd' }}" 很好

bsDatepicker 与输入字段和表单集成,这应该适合您:

<input name="from" bsDatepicker [(ngModel)]="newVar">

并且您可以通过config全局更改输入值的日期格式

https://github.com/valor-software/ngx-bootstrap/blob/development/src/datepicker/bs-datepicker.config.ts#L31

或通过[bsConfig]="{dateInputFormat: 'yyyy-MM-dd'}"元素与bsDatepicker

注意:目前存在一个带L格式的问题(v1.9.2),它总是使用en-us语言环境

  • @valorkin从版本2.0开始我不得不使用''YYY-MM-DD'而不是''yyyy-MM-dd' (2认同)

小智 5

如果您正在使用日期范围选择器,那么您应该在 [bsConfig] 中使用rangeInputFormat而不是 dateInputFormat。