1

在表单中,对于使用角度引导的日期字段 -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']);

Thu Jan 02 2020 00:00:00 GMT+0530 (India Standard Time) 选择的日期"2019-12-02"是现在"2020-01-02"

4

3 回答 3

1

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

请参阅官方文档,您正在寻找这一行:

 providers: [{provide: NgbDateAdapter, useClass: NgbDateNativeAdapter}]
于 2019-12-06T14:09:39.137 回答
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);

于 2019-12-06T14:21:34.550 回答
0

Month-1Day + 1

let oDob = new Date(employeeToSave.dob['year'], employeeToSave.dob['month'] - 1, employeeToSave.dob['day'] + 1);
于 2019-12-06T19:01:18.703 回答