繁体   English   中英

遇到恼人的问题:momentjs 在不同时区使用 mat-datepicker 休息一天?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM