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

时间:2019-12-06 13:47:56

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

形式,用于使用角度引导程序的日期字段-ngbDatepicker

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

,日期是。 enter image description here

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

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"

3 个答案:

答案 0 :(得分:1)

您可以通过实现NgbDateAdapter抽象类来修改日期格式,但实际上,有一个现成的Date本机适配器。

See official docs,您正在寻找以下行:

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Month-1Day + 1

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