Je souhaite obtenir la date au format suivant: AAAA-MM-JJ.
J'ai écrit un service de date dans Angular2 basé sur cette question: Comment obtenir la date actuelle en JavaScript? .
Je voulais vérifier s’il s’agissait d’une mise en œuvre correcte ou s’il existe un meilleur moyen d’atteindre le but recherché.
import { Injectable } from '@angular/core';
@Injectable()
export class DateService {
private currentDate = new Date();
getCurrentDateInApiFormat(): string{
let day:any = this.currentDate.getDate();
let month:any = this.currentDate.getMonth() + 1;
let year:any = this.currentDate.getFullYear();
let dateInApiFormat: string;
if(day<10){
day = '0' + day.toString();
}
if(month<10){
month = '0' + month.toString();
}
dateInApiFormat = day + '-' + month + '-' + year.toString();
return dateInApiFormat;
}
}
À utiliser dans votre composant.
@Injectable()
import { DatePipe } from '@angular/common';
class MyService {
constructor(private datePipe: DatePipe) {}
transformDate(date) {
this.datePipe.transform(myDate, 'yyyy-MM-dd'); //whatever format you need.
}
}
Le format de date différent peut être atteint via la bibliothèque moment.js. Vous pouvez simplement l'importer/l'ajouter. et utilisez la syntaxe suivante pour convertir votre horodatage en chaîne de date.
moment.tz (this.value, 'GMT'). format ('aaaa-MM-jj HH: mm: ss');
Ici, tz est le fuseau horaire.
// To use date service
import { Injectable } from '@angular/core';
@Injectable()
export class DateService {
public currentDate = new Date();
getCurrentDateInApiFormat() {
const Date = currentDate;
const Month = ('0' + (date.getMonth() + 1)).slice(-2);
const Day = ('0' + date.getDate()).slice(-2);
return [Date.getFullYear(), Month, Day].join('-');
}
}