根据时区更改mat-datepicker选择的日期值
Change mat-datepicker selected date value according to a time zone
在 ts。我使用 (dateChange)="setToDate($event.value)" 来获取选定的日期。
<mat-form-field appearance="outline">
<input matInput [matDatepicker]="picker2" readonly = "readonly" [(ngModel)] = "grid.todate"
(dateChange)="setToDate($event.value)" [min]="grid.fromdate">
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
<mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
我想将所选日期更改为服务器时区 为 GMT。
我试过 DatePip。
public setToDate(data: any): void {
const todayDate = new Date();
this.todate = data._d;
const changedDate = new DatePipe('en-Us').transform(data.toDate(), 'full', 'GMT');
}
日期选择器选择了凌晨 00:00 的日期。 Date pip 不会给出 GMT 时间。
这是一个例子 >
https://stackblitz.com/edit/material-date-picker-csyldt?embed=1&file=app/app.component.ts
像下面这样更改您的 setDate 方法,
setDate(date: string) {
this.date = date;
this.gmtDate = new Date(date).toUTCString();
}
您可以使用 moment 将您的时间转换为 UTC。 UTC 和 GMT 没有偏移量。
对于日期,您只需在函数中传递今天的日期。
var utcDate = new moment("2020-01-24T11:00", "YYYY-MM-DDTHH:mm").utc();
我找到了将选择的日期转换为任何时区日期(使用它选择的时间)的解决方案
setDate(newdate: string) {
const _ = moment();
const date = moment(newdate).add({hours: _.hour(), minutes:_.minute() , seconds:_.second()});
this.date = date.toDate();
this.gmtDate = new DatePipe('en-Us').transform(date, 'full', '+530');
}
}
https://stackblitz.com/edit/material-date-picker-csyldt?embed=1&file=app/app.component.ts
我已经为遇到同样问题的人编辑了 stackblitz。
在 ts。我使用 (dateChange)="setToDate($event.value)" 来获取选定的日期。
<mat-form-field appearance="outline">
<input matInput [matDatepicker]="picker2" readonly = "readonly" [(ngModel)] = "grid.todate"
(dateChange)="setToDate($event.value)" [min]="grid.fromdate">
<mat-datepicker-toggle matSuffix [for]="picker2"></mat-datepicker-toggle>
<mat-datepicker #picker2></mat-datepicker>
</mat-form-field>
我想将所选日期更改为服务器时区 为 GMT。
我试过 DatePip。
public setToDate(data: any): void {
const todayDate = new Date();
this.todate = data._d;
const changedDate = new DatePipe('en-Us').transform(data.toDate(), 'full', 'GMT');
}
日期选择器选择了凌晨 00:00 的日期。 Date pip 不会给出 GMT 时间。
这是一个例子 > https://stackblitz.com/edit/material-date-picker-csyldt?embed=1&file=app/app.component.ts
像下面这样更改您的 setDate 方法,
setDate(date: string) {
this.date = date;
this.gmtDate = new Date(date).toUTCString();
}
您可以使用 moment 将您的时间转换为 UTC。 UTC 和 GMT 没有偏移量。 对于日期,您只需在函数中传递今天的日期。 var utcDate = new moment("2020-01-24T11:00", "YYYY-MM-DDTHH:mm").utc();
我找到了将选择的日期转换为任何时区日期(使用它选择的时间)的解决方案
setDate(newdate: string) {
const _ = moment();
const date = moment(newdate).add({hours: _.hour(), minutes:_.minute() , seconds:_.second()});
this.date = date.toDate();
this.gmtDate = new DatePipe('en-Us').transform(date, 'full', '+530');
}
}
https://stackblitz.com/edit/material-date-picker-csyldt?embed=1&file=app/app.component.ts
我已经为遇到同样问题的人编辑了 stackblitz。