我已将BsDatepickerModule
中的ngx-bootstrap
集成到我的应用程序模块中,以使用户可以按日期过滤列表。问题是当我更改月份时(例如,从一月更改为二月,我得到的日期(日期-1)不正确。
这是应用程序模块:
@NgModule({
declarations: [AppComponent],
imports: [BsDatepickerModule.forRoot() ],
bootstrap: [AppComponent]
})
export class AppModule { }
以下是组件:
onValueChange(value: Date): void {
console.log(value.toISOString().split('T')[0]);
});
当我更改月份然后选择例如2019/01/07
时,输出打印2019/01/06
怎么了?
请注意,我正在转换日期以获取YYYY-mm-dd
格式的日期
答案 0 :(得分:1)
在MDN文档中,monthIndex基于0。
因此要将月份从Date构造函数转换为人类可以理解的月份,请在值上加1。
new Date()。getMonth()+ 1
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getMonth
编辑:
好的,我创建了一个stackblitz演示。检查并查看是否要让您的应用程序像这样。
https://stackblitz.com/edit/angular-z3vtli
编辑2:
我已经更新了演示。 您不应该将日期转换为ISOString(),因为默认情况下是(我认为)。 如果要与本地日期相同,请使用toLocalDateString()。
积分:
我的一个上班族。
@Eliseo (在评论部分)