我有一个数组列表,我需要按日期过滤该列表。我正在从ngx-daterangepicker-material获取日期。我有2个日期,我需要过滤这两个日期之间的数据。
<div class="form-group">
<label for="">Date</label>
<input type="text" ngxDaterangepickerMd [(ngModel)]="selected" (change)="getClaims()" [locale]="{applyLabel: 'ok', format: 'DD-MM-YYYY'}" class="form-control"/>
</div>.ts
if(this.selected){
this.from = this.selected.startDate.format("DD-MMM-YYYY");
this.to = this.selected.endDate.format("DD-MMM-YYYY")
console.log(this.from); //01-Jul-2019 showing in this format
console.log(this.to);
console.log(this.data10.filter((item: any) =>
item.responded_at >= this.from && item.responded_at <= this.to
));
}有没有可能问题是月份的大小写?这个月显示的是2月份,我在2月份采集了数据。

发布于 2019-07-24 19:14:47
您可以使用Date对象的getTime()。它返回毫秒数,并且在比较日期时使您的工作更容易。像这样的东西;
console.log(this.data10.filter((item: any) =>
item.responded_at.getTime() >= this.from.getTime() && item.responded_at.getTime() <= this.to.getTime()
));发布于 2019-07-25 03:52:54
JavaScript将日期存储为自1970年1月1日00:00:00 UTC (协调世界时)以来的毫秒数。
因此,您总是可以通过在日期变量前添加+号来将其转换为毫秒,这样就很容易比较日期。
date = new Date('24-AUG-2018');
ngOnInit() {
console.log(this.date);
console.log(+this.date)
}第一行将记录- 2018-08-23T21:00:00.000Z
第二行将记录- 1535058000000,这是自1970年1月1日以来的毫秒数
我添加了一个stackblitz示例here
https://stackoverflow.com/questions/57181315
复制相似问题