[英]Annoying Problem Encountered : momentjs taking a day off by 1 with mat-datepicker for different timezones?
场景:加载组件时一切正常。 日期不会减少 1。但是在我使用 mat-datepicker 或手动更改日期后,日期会减少 1。
我可以看到它的时区问题。 使用 -4:00 偏移时区它给了我错误的行为,但在我的时区它工作正常(+5:30)。
请帮忙!
HTML:
<input id="startDatePicker" matInput [matDatepicker]="startDatePicker" [(ngModel)]="model.start" placeholder="mm/dd/yyyy" class="form__dateInput"/>
<mat-datepicker-toggle matSuffix [for]="startDatePicker"></mat-datepicker-toggle>
<mat-datepicker #startDatePicker></mat-datepicker>
模型类文件:
export class Query {
start = moment();
end = moment();
public toParams(): HttpParams {
let params = new HttpParams();
start.local();
end.local();
this.start.startOf('day');
this.end.endOf('day');
params = params.set('start', this.start.toISOString());
params = params.set('end', this.end.toISOString());
}
}
您可以通过提供 MAT_MOMENT_DATA_ADAPTER_OPTIONS 并将其设置为 useUtc: true 来更改默认行为以将日期解析为 UTC。
@NgModule({
imports: [MatDatepickerModule, MatMomentDateModule],
providers: [
{ provide: MAT_MOMENT_DATE_ADAPTER_OPTIONS, useValue: { useUtc: true } }
]
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.