按日期持续时间的角度过滤器数组

时间:2019-07-24 10:58:34

标签: angular

我有一个数组列表,我需要按日期过滤列表。我从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月这样的FEB,并且我正在获取数据。

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以使用Date对象的getTime()。它返回毫秒数,使您在比较日期时更轻松。像这样的东西

console.log(this.data10.filter((item: any) =>
item.responded_at.getTime() >= this.from.getTime() && item.responded_at.getTime() <= this.to.getTime()
));

答案 1 :(得分:0)

JavaScript将日期存储为自1970年1月1日UTC(全球标准时间)00:00:00以来的毫秒数。

因此,您始终可以通过在date变量之前添加+号将其转换为毫秒,然后比较日期即可。

  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日以来的毫秒数

我添加了一个here的堆栈闪电示例

相关问题