我在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
请建议
答案 0 :(得分:10)
试试这个:
让myDate:Date = moment(dateString,“YYYY-MM-DD”)。format(“DD-MM-YYYY”);
基本上,当您致电moment()
时,您应指定当前日期所在的格式,不您想要的输出格式。调用.format()
时应指定输出格式。
答案 1 :(得分:1)
答案 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;
}
}