datepicker 总是显示 Day-1

datepicker always show Day-1

我使用 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)

我尝试将日期设置为字符串,但仍然无效。

还有没有办法将每个日期转换为字符串,只取 YYYY-MM-DD 而没有时区?

我使用 ngx-boostrap 2.0.5(尝试使用 3.0.1 会出错)

<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

我使用了这个功能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)