MomentJs:如何在Typescript中将字符串转换为日期?

时间:2017-02-28 16:03:35

标签: javascript angular typescript momentjs ag-grid

我在Angular 2中实现了Ag Gird。我有一个日期列和日期排序,Ag网格只需要格式的日期类型。因此,我必须以日期的形式发送它以进行渲染。但我的输入是字符串。 我的格式为2017-01-19的dateString。我正在做

let myDate:Date = moment(dateString).toDate();

但是,它是我2017年1月19日00:00印度标准时间的输出。我也是这样尝试的

let myDate:Date = moment(dateString).format("DD/MM/YYYY");

这给了我错误字符串不能分配给日期。

也是这样尝试

let myDate:Date = moment(dateString,"DD/MM/YYYY");

但没有运气。 我想要的是,输出的类型为日期,格式为19-01-2017

请建议

3 个答案:

答案 0 :(得分:10)

试试这个:

  

让myDate:Date = moment(dateString,“YYYY-MM-DD”)。format(“DD-MM-YYYY”);

基本上,当您致电moment()时,您应指定当前日期所在的格式,您想要的输出格式。调用.format()时应指定输出格式。

答案 1 :(得分:1)

moment().toDate();

给出一个Date对象

Moment.js transform to date object

得到答案

答案 2 :(得分:0)

您应该在列定义中使用column renderer framework。字段date应该是javascript日期。您可以通过new Date("2017.02.28")从字符串生成此内容,此处无需使用时刻。

{
  colId: "date",
  headerName: "Date",
  field: "date",
  cellRendererFramework: GridDateComponent,
}

此组件显示日期格式化您希望如何使用date管道,同时保留原始JSDate以进行排序等。

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;
    }
}