首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按日期持续时间的角度过滤器数组

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

Stack Overflow用户
提问于 2019-07-24 18:58:35
回答 2查看 125关注 0票数 0

我有一个数组列表,我需要按日期过滤该列表。我正在从ngx-daterangepicker-material获取日期。我有2个日期,我需要过滤这两个日期之间的数据。

代码语言:javascript
复制
    <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

代码语言:javascript
复制
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月份采集了数据。

EN

回答 2

Stack Overflow用户

发布于 2019-07-24 19:14:47

您可以使用Date对象的getTime()。它返回毫秒数,并且在比较日期时使您的工作更容易。像这样的东西;

代码语言:javascript
复制
console.log(this.data10.filter((item: any) =>
item.responded_at.getTime() >= this.from.getTime() && item.responded_at.getTime() <= this.to.getTime()
));
票数 0
EN

Stack Overflow用户

发布于 2019-07-25 03:52:54

JavaScript将日期存储为自1970年1月1日00:00:00 UTC (协调世界时)以来的毫秒数。

因此,您总是可以通过在日期变量前添加+号来将其转换为毫秒,这样就很容易比较日期。

代码语言:javascript
复制
  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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57181315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档