datepicker始终显示Day-1

时间:2018-08-13 02:48:05

标签: angular datepicker ngx-bootstrap

我使用angular 5 Reactive Form和ngx-bootstrap datepicker进行日期输入。

<div class="col-sm-3 form-group">
            <input type="text" class="form-control" 
            placeholder="End Date" 
            formControlName="endDate" 
            [bsConfig]="{ containerClass: 'theme-dark-blue', dateInputFormat: 'YYYY-MM-DD' }"
            bsDatepicker> 
        </div>
ngOnInit(){
  this.createEditForm();
}

createEditForm(){
this.editForm = this.fb.group(
    {
        id: [this.id],
        startDate: [this.startDate, Validators.required],
        endDate: [this.endDate],
        annualSalary: [this.annualSalary, Validators.required],
        userId: [this.userId]
    });

}

但是当我更改输入日期时,前端显示正确的日期(例如当我键入2018-01-03时显示2018-01-03),但是表单值显示类似Day-1(2018-01-02) )

我试图将日期设置为字符串,但仍然无法正常工作。

Date Input get wrong date

还有没有一种方法可以将每个日期都转换为字符串,而仅采用YYYY-MM-DD而无需时间和区域?

我使用ngx-boostrap 2.0.5(尝试3.0.1会产生错误)

2 个答案:

答案 0 :(得分:1)

我使用了此功能onHidden对我有用,
希望对您有帮助(;

CutTimeZoneDate(){
        let d:Date = this.form.get(your-nameform-control).value
        d.setHours(d.getHours() - d.getTimezoneOffset() / 60);
        this.form.get(your-nameform-control).setValue(d)

答案 1 :(得分:0)

<p><code>ngModel</code> property sets two-way data binding in this example</p>
<div class="row">
  <div class="col-xs-12 col-12 col-md-4 form-group">
     <input class="form-control" #drp="bsDaterangepicker" bsDaterangepicker 
         [(ngModel)]="bsRangeValue">
  </div>
<div class="col-xs-12 col-12 col-md-3 form-group">
<button class="btn btn-success" (click)="drp.toggle()" [attr.aria- 
      expanded]="drp.isOpen">Date Range Picker</button>

您忘记绑定模型ngx-bootstrap/datepicker