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.
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]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';Sedan i din konstruktor initierar du detta:
constructor(private _http: HttpClient, public datepipe: DatePipe) { }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');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'
