javascript - 使用 typeScript 转换日期对象属性数组

标签 javascript angular typescript sorting datetime

我的数据数组有一个日期字段,目前我尝试创建的管道无法读取该字段。因此,我试图在日期到达我的管道之前将其转换为一种格式。我的组件构造函数中已经有一个按日期字段排序的过滤器。在此之后我想将日期转换为这种格式并给我一个新数组。

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

最佳答案

你可以试试下面的代码:

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

关于javascript - 使用 typeScript 转换日期对象属性数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079554/

相关文章:

javascript - 如何将图像传递给函数 Ionic 2

javascript - React.useMemo 无法防止重新渲染

javascript - 如何在用户单击外部时隐藏下拉菜单

Angular 6 与 Spring security webflux 被 CORS 阻止

angular - ngbPopover 里面有 html

javascript - 枚举成员如何在 TypeScript 中使用别名?

javascript - 即使在编译错误后,Typescript 编译器也会生成 javascript

javascript - Ace Editor 删除我的 HTML 标签

javascript - 网格的过滤器存储在两个不同的列上

javascript - 确定在 typescript 中可能具有多种类型的参数类型