【发布时间】:2019-08-08 08:19:14
【问题描述】:
帮助解决问题。 2天了,我无法理解问题是什么。我正在使用 Angular 组件“使用 Moment.js 日期的日期选择器”。但问题是,当我选择例如 03/10/2015 时,组件返回 03/09/2015。我知道这是由于时区问题,因为我有(UTC + 3),但我不明白如何解决它。
我的代码component.html:
<mat-form-field appearance="outline" class="datepicker" *ngIf="buttonDisabled" >
<input matInput [matDatepicker]="birthdate" [value]="user.birthdate" formControlName="birthdate" >
<mat-datepicker-toggle matSuffix [for]="birthdate"></mat-datepicker-toggle>
<mat-datepicker #birthdate></mat-datepicker>
</mat-form-field>
组件.ts
import { Component } from '@angular/core';
import { NgForm, FormControl, FormGroup } from '@angular/forms';
import { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import * as _moment from 'moment';
import { default as _rollupMoment } from 'moment';
const moment = _rollupMoment || _moment;
@Component({
selector: 'userinfo',
templateUrl: './userinfo.component.html',
styleUrls: ['../../../app.component.css'],
providers: [
{ provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
{ provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS }
]
})
export class UserInfoComponent {
mgForm: FormGroup = new FormGroup({
"birthdate": new FormControl(moment(this.user.birthdate)),
});
【问题讨论】:
-
为什么要使用
moment.utc方法momentjs.com/docs/#/parsing/utc -
@Kenny 已经尝试过没有任何改变
标签: angular typescript angular-material momentjs angular-moment