角度のあるリアクティブ フォームから日付を取得する必要があります。次に、日付を使用してstringfy し、 session storage に保存する必要があります。日付をタイムスタンプを含まず、日付のみを含む形式にしたい(したがって、mm/dd/yyyy または dd/mm/yyyy、またはその他の形式)。UTC 時間として使用したくありません。 local として使用してください。私は UTC で日付を取得し続けます。したがって、UTC+2 の場合、日付は 22:00 の前日に変換されます。それを文字列として使用することはそれを行う1つの方法ですが、日付として使用したいと思います日付ピッカーを構成する最良の方法は何ですか\ JSON.stringifyがUTC規則を使用せず、ローカル日付として扱わないようにします- 日付オブジェクトではなく文字列として設定しますか?
私のコードを参照してください: HTML:
<mat-form-field>
<mat-label>Date Of Birth</mat-label>
<input matInput [matDatepicker]="picker" formControlName="DateOfBirth">
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
<button mat-raised-button type="submit" (click)="saveUserDetails()">
成分:
ngOnInit() {
if (this.userService.userDataInSession && this.userService.userDataInSession.FirstName)
{
let sessionUserData = this.userService.userDataInSession;
this.userDetailsForm = this.fb.group(
{
DateOfBirth:[sessionUserData.DateOfBirth]
}
}
else
{
this.userDetailsForm = this.fb.group(
{
DateOfBirth:['']
}
}
}
saveUserDetails()
{
this.userDetailsData.initByFormControls(this.userDetailsForm.controls);
this.userService.userDataInSession = this.userDetailsData;
}
userDetailsData (モデル):
public initByFormControls(formControls : any)
{
Object.keys(this).forEach(key =>
{
if (formControls[key])
{
this[key] = formControls[key].value;
}
});
}
ユーザーサービス:
export class UserService
{
get userDataInSession() : UserData
{
if (!sessionStorage.getItem("userData") || sessionStorage.getItem("userData") == "undefined")
{
return new UserData();
}
else
{
return JSON.parse(sessionStorage.getItem("userData"));
}
}
set userDataInSession(value)
{
sessionStorage.setItem("userData", JSON.stringify(value));
}
setUserDataProperty(propertyName : string, value : any)
{
if (this.userDataInSession.hasOwnProperty(propertyName))
{
this.userDataInSession[propertyName] = value;
this.userDataInSession = this.userDataInSession;
}
}
}