web-dev-qa-db-fra.com

MomentJs: Comment convertir une chaîne en date en dactylographie?

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

6
Protagonist

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().

8
Wissam
moment().toDate();

donne un objet Date

a obtenu la réponse de Moment.js transformer en objet de date

1
Alx

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;
    }
}
0
Christopher Moore