我的数据数组具有一个日期字段,该字段当前无法被我试图创建的管道读取。因此,我试图将日期转换为到达管道之前的格式。我的组件构造函数中已经有一个按日期字段排序的过滤器。之后,我想将日期转换成这种格式,然后给我一个新的数组。
0: {dateTime: "2018-09-22T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
1: {dateTime: "2019-09-08T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
2: {dateTime: "2019-09-09T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
3: {dateTime: "2019-09-10T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
4: {dateTime: "2019-09-11T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
上面是按日期顺序排序后的...我想要这样的东西:
0: {dateTime: "22-09-2018", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
1: {dateTime: "21-09-2018", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
2: {dateTime: "20-09-2018", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
3: {dateTime: "19-09-2018", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
4: {dateTime: "18-09-2018", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam."}
这是我的构造函数,您将在这里看到订单过滤器管道,此后,我尝试将新数组转换为一个新的数组供我使用。
constructor(private contactLogService: ContactLogService, private orderPipe: OrderPipe, private datePipe: DatePipe) {
this.sortedCollection = orderPipe.transform(this.contactLogService.contactLog, 'dateTime');
this.formattedDateCollection = datePipe.transform(this.sortedCollection.dateTime, 'yyyy-dd-MM'); // new line
console.log("contact log sorted", this.sortedCollection);
console.log("Formatted Date", this.formattedDateCollection);
}
使用上述.sateTime在“ any”类型上不存在-以下是我的小贴士
contactLog: any;
sortedCollection: any[] = [];
formattedDateCollection: any; //new
答案 0 :(得分:1)
您可以尝试以下代码:
this.formattedDateCollection = this.sortedCollection.map(x => {
const y = Object.assign({}, x);
y.dateTime = this.datePipe.transform(x.dateTime, "yyyy-dd-MM");
return y;
});
PS:如果您已经通过http调用来提取数据,则最好将逻辑从构造函数移至ngOnInit()。
答案 1 :(得分:1)
可以通过原始JavaScript完成:
fooFunction(keyVal) {
const grades = [
{ dateTime: "2018-09-22T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam." }
, { dateTime: "2019-09-08T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam." }
, { dateTime: "2019-09-09T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam." }
, { dateTime: "2019-09-10T10:17:12.162Z", notes: "Lorem ipsum dolor sit amet, quo ei simul congue ex…oluptua dignissim per, habeo iusto primis ea eam." }
, { dateTime: "2019-09-11T10:17:12.162Z" }
];
let desiredData= grades.map(g => {
return {
dateTime: this.transformDate(g.dateTime),
notes: g.notes
};
});
console.log(desiredData);
}
transformDate(dateTime){
return new Date(dateTime).toJSON().slice(0,10);
}