Im implémentant Ag Gird dans Angular 2. J'ai une colonne de dates et un tri des dates et la grille Ag attend un type de date dans le format uniquement. J'ai donc dû l'envoyer sous forme de date pour le rendu. Mais mon entrée est string . J'ai mon dateString au format 2017-01-19. Je fais
let myDate:Date = moment(dateString).toDate();
Mais cela me donne la sortie comme jeudi 19 janvier 2017 00:00, heure normale des Indes. J'ai essayé comme ça aussi
let myDate:Date = moment(dateString).format("DD/MM/YYYY");
Cela me donne error- string n'est pas assignable à Date.
Essayé comme ça aussi
let myDate:Date = moment(dateString,"DD/MM/YYYY");
Mais pas de chance . Ce que je veux, c'est le type de sortie sous forme de date et sous la forme 19-01-2017
Veuillez suggérer
Essaye ça:
let myDate: Date = moment (dateString, "AAAA-MM-JJ") format ("JJ-MM-AAAA");
En règle générale, lorsque vous appelez moment()
, vous devez spécifier le format de votre date actuelle, pas le format de sortie souhaité. Le format de sortie doit être spécifié lors de l'appel de .format()
.
Vous devriez utiliser un column renderer framework dans vos définitions de colonne. Où le champ date
devrait être une date javascript. Vous pouvez générer ceci à partir d'une chaîne via new Date("2017.02.28")
, il n'est pas nécessaire ici d'utiliser moment.
{
colId: "date",
headerName: "Date",
field: "date",
cellRendererFramework: GridDateComponent,
}
Ce composant affiche la date formatée comme vous le souhaitez en utilisant le tube date
tout en préservant le JSDate d'origine pour le tri, etc.
import { Component } from '@angular/core';
import { AgRendererComponent } from 'ag-grid-ng2/main';
@Component({
selector: 'date-cell',
template: `{{params.value | date:'d MMM'}}`
})
export class GridDateComponent implements AgRendererComponent {
public params: any;
agInit(params: any): void {
this.params = params;
}
}