angular - skicka aktuellt datum till Api med TypeScript i formatet (DateTime)


hur kan jag skicka aktuellt datum till API:et med TypeScript i ett specifikt format (DateTime) när jag skickar datum till API:et, skickas det i detta format så jag fick felet.

min ts-kod:

date: Date;
constructor( private dataStorageService: DataStorageService) {
    this.date = new Date();
}
onSubmit(Message , form : FormGroup){
    let newMsg = {
        username: Message.username,
        header: Message.header,
        content: Message.content,
        file: Message.file
    }
  this.dataStorageService.postMessage(newMsg, this.Id , this.date).subscribe(data => {
      console.log('done');
      console.log(this.date);
      }, error => {
          console.error("Error saving jobs!");
      })
}

http://api.azharcouncil.com/api/notification/PostNotification?user_id=15&Header=hj&Content=hjh&File_Path=null&date=Wed Nov 15 2017 10:44:56 GMT+0200 (Egypt Standard Time)

Så mitt ärende är ogiltigt på grund av datumformatet...

Svar #1

Här är det fullständiga svaret på din fråga.

  1. Importera DatePipe i huvudmodulen och ge den till din huvudmodul i main.module.ts i din provider-array som ges nedan:

    import {DatePipe} from '@angular/common';    
    providers: [DatePipe]
    
  2. Använd det i din ts-fil med dessa metoder, importera även DatePipe från @angular/common i din ts-fil.

    import {DatePipe} from '@angular/common';
    
  3. Sedan i din konstruktor initierar du detta:

    constructor(private _http: HttpClient, public datepipe: DatePipe) { }
    
  4. Använd nu dessa metoder för att få rätt datumformat:

    let myDate = new Date(); 
    console.log(this.datepipe.transform(myDate, 'yyyy-mm-dd'));
    someDateVar = this.datepipe.transform(myDate, 'yyyy-mm-dd');
    
  5. Nu kan someDateVar användas för att skicka det till servern som har det datumformat du behöver. Observera också att du kan använda flera andra datumformat som också finns i Angulars datumrör-dokumentation.

Svar #2

vi kan uppnå detta genom att använda moment.js

Exempel på kodning

import * as moment from 'moment-timezone'

export enum dateFormats {
    'DMY'= 'DD/MM/YYYY',
    'MDY'= 'MM/DD/YYYY'
}

// converts datestring to date
export const ToDate = (dateString: string, format: string) => new Date(moment(dateString, format))

// converts date to datestring
export const ToDateString = (date: Date, format: string) => moment(date).format(format)

Användning (i komponent)

const dateValue = new Date() // Date = Tue Feb 19 2020 12:05:22 GMT+0530 (IST)
const dateString = ToDateString(dateValue, dateFormats.DMY) // dateString = '19/02/2020'

Relaterade artiklar