代码之家  ›  专栏  ›  技术社区  ›  nightingale2k1

日期选择器始终显示第1天

  •  0
  • nightingale2k1  · 技术社区  · 6 年前

    <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 回复  |  直到 6 年前
        1
  •  1
  •   antzshrek    6 年前

    我用这个函数 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)
    
        2
  •  0
  •   ling yu    6 年前
    <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