【问题标题】:How to filter a unix timestamp如何过滤 unix 时间戳
【发布时间】:2018-07-17 20:06:08
【问题描述】:

所以基本上我有一个具有搜索按钮或过滤功能的离子移动应用程序。我已经弄清楚如何过滤单词,但这里的问题是日期,因为它是时间戳,并且通过 角度日期过滤器是

<p>at {{item.fromDate | date:'mediumDate'}}</p>

这是一张图片,你可以画出来。

显示的数据。如您所见,fromDate 和 toDate 是 Unix 时间戳

所以这里的问题是我想为日期做一个搜索功能,但我很难知道它是时间戳。

这是我的过滤器代码

getItems(ev: any) {
  console.log("awdaw");
  console.log("awdaw",this.ListOfitems);
  console.log("otin");

  this.ListofItems();
  let val = ev.target.value;
  if (val && val.trim() != '') {
    this.ListOfitems = this.ListOfitems.filter((ListOfitem) => {
      return (ListOfitem.fromAddress.toLowerCase().indexOf(val.toLowerCase()) > -1||
        ListOfitem.toAddress.toLowerCase().indexOf(val.toLowerCase()) >-1) ;


    })
  }

}

【问题讨论】:

    标签: javascript angularjs typescript ionic-framework ionic2


    【解决方案1】:

    您可以在过滤器函数中使用mediumDate 过滤器。

    为此,您必须使用DatePipe

    import { DatePipe } from '@angular/common';
    

    你必须在你的课堂上注入这个。您可以在this answer 中查看。

    那么就:

    this.datePipe.transform(ListOfItem.fromDate, 'mediumDate')
    this.datePipe.transform(ListOfItem.toDate, 'mediumDate')
    

    它应该返回与您显示的字符串相同的字符串

    因此,您必须添加到过滤器的附加条件是:

    this.datePipe.transform(ListOfItem.fromDate, 'mediumDate').toLowerCase().indexOf(val.toLowerCase()) > -1
    this.datePipe.transform(ListOfItem.toDate, 'mediumDate').toLowerCase().indexOf(val.toLowerCase()) > -1
    

    顺便说一句,你可以这样做:

    const val = (ev.target.value || '').toLowerCase();
    

    所以你不要重复写val.toLowerCase()

    【讨论】:

    • 你好,请问$filter是什么?
    • 因为我用的是打字稿呵呵
    • 在 angularjs (v1) 中,可以将 $filter 注入到您的控制器/服务/工厂中,以调用您在视图中使用的相同过滤器。你用的是 angular2+ 对吗?
    • 是的,我理解其中的逻辑,但我对如何使用 $filter 感到困惑。没有它 (ListOfItem.fromDate, 'mediumDate') 这将不起作用,因为这是 html 绑定格式。使用过滤器时,它给了我 $filter 未定义。
    • 我认为 htis 是最好的方法,但我在 $filter 上遇到了困难。呵呵,对不起,我是角度的初学者
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-15
    • 2021-11-23
    • 1970-01-01
    • 2013-03-23
    相关资源
    最近更新 更多