Angular Bootstrap - ngbDatepicker - 将选定的日期转换为日期对象

Angular Bootstrap - ngbDatepicker - Convert selected Date into Date Object

在表单中,日期字段使用 angular bootstrap - ngbDatepicker

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

日期是。

此处尝试创建一个日期对象,以替换员工表单日期。 但是得到一个不同的日期

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"

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

See official docs,您正在寻找这一行:

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

Date() 中,月份的索引是基于 0 的 ,您可以输入任何数字,例如 december(12th month),其值将是 11。所以尝试将 (month-1) 放在 new Date() 中。

如下图:

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

工作片段:

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);

Month-1Day + 1

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