typescript - Överskrid Date.prototype.toJSON för att lösa tidszonsproblem i angular 7


Jag har en Angular 7-app. Och jag skickar datum till min server. Men min tid som skickas till servern är 3 timmar bakåt på grund av tidszon. Och jag lärde mig att det enda sättet att lösa detta problem är att skriva Date.prototype.toJSON. Men, jag vet inte i Angular, var jag ska skriva nedanstående kod och hur? (Till exempel index.html, app.module.ts, ...) Jag skrev mitt stackblitz-exempel nedan.

Date.prototype.toJSON = function(key){
    //This code return me as string like "25.02.0219 19:48:52"
    return this.toLocaleDateString() + ' ' + this.toLocaleTimeString();
}

STACKBLITZ

Svar #1

Du kan åsidosätta Date-prototypen i huvudstartpunkten för din applikation, i ditt fall är det AppModule.ts, så att den kommer att vara tillgänglig för hela applikationen.

App.module.ts

export class AppModule {


  constructor() {
    this.overrideDate();
  }

  overrideDate() {
    Date.prototype.toJSON = function (key) {
      //This code return me as string like "25.02.0219 19:48:52"
      return this.toLocaleDateString() + ' ' + this.toLocaleTimeString();
    }

  }

Nu kan du i din komponent, det kommer att vara tillgängligt.

  save() {

    console.log(this.myForm.value);
    this.http.post("localhost:5000",this.myForm.value).subscribe(result => {});
  }  

Här är forkad stackblitz-länk

Hoppas detta hjälper!

Relaterade artiklar