【问题标题】:Angular Bootstrap - ngbDatepicker - Convert selected Date into Date ObjectAngular Bootstrap - ngbDatepicker - 将选定的日期转换为日期对象
【发布时间】:2020-03-31 12:33:26
【问题描述】:

在表单中,对于使用角度引导的日期字段 - ngbDatepicker

<input  ngbDatepicker #d="ngbDatepicker" [readonly]="true"
                            [minDate]="{year: 1900, month: 1, day: 1}"
                            [formControl]="empForm.controls['dob']" />

日期是。

这里尝试创建一个 Date 对象,来替换员工表单的日期。 但是得到一个不同的日期

let oDob = new Date(employeeToSave.dob['year'], employeeToSave.dob['month'],  employeeToSave.dob['day']);

2020 年 1 月 2 日星期四 00:00:00 GMT+0530(印度标准时间) 所选日期"2019-12-02" 现在是"2020-01-02"

【问题讨论】:

    标签: angular date data-conversion ng-bootstrap ngb-datepicker


    【解决方案1】:

    Month-1Day + 1

    let oDob = new Date(employeeToSave.dob['year'], employeeToSave.dob['month'] - 1, employeeToSave.dob['day'] + 1);
    

    【讨论】:

    • 您必须在答案中添加一些 cmets 以使其更有帮助。
    【解决方案2】:

    Date() 月份的索引是基于0的,无论您想输入什么数字,例如december(12th month),都将具有11 的值。所以尝试将 (month-1) 放入 new Date()

    如下图:

    let oDob = new Date(employeeToSave.dob['year'], employeeToSave.dob['month']-1,  employeeToSave.dob['day']);
    

    工作 sn-p :

    let month=12;
    let year = 2019;
    let day = 12;
    dob = new Date(year,month,day);
    console.log("wrong Date : "+dob);
    
    dob2 = new Date(year,month-1,day);
    console.log("correct Date : "+dob2);

    【讨论】:

      【解决方案3】:

      您可以通过实现NgbDateAdapter抽象类来修改日期格式,但实际上,有一个开箱即用的原生Date适配器。

      See official docs,你在找这条线:

       providers: [{provide: NgbDateAdapter, useClass: NgbDateNativeAdapter}]
      

      【讨论】:

        猜你喜欢
        • 2017-01-08
        • 1970-01-01
        • 1970-01-01
        • 2020-05-21
        • 2020-11-30
        • 1970-01-01
        • 2013-03-07
        • 1970-01-01
        相关资源
        最近更新 更多