0

角度のあるリアクティブ フォームから日付を取得する必要があります。次に、日付を使用して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;
    }
  }
}  
4

1 に答える 1