所以基本上我有一个离子移动应用程序,它有一个搜索按钮或过滤器功能。我已经弄清楚如何过滤单词,但问题是这个日期,因为它是一个时间戳,并通过应用程序显示在应用程序中
的角度日期过滤器<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) ;
})
}
}
答案 0 :(得分:0)
您可以使用过滤器功能中的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()