【发布时间】:2020-05-10 19:25:41
【问题描述】:
我创建了一个小的 StackBlitz-Project 来代表我的情况。我想记录选定日期范围内的所有对象。 但是当我过滤我的对象时,我得到一个空数组作为结果。我想问您如何比较日期,因为根据您拥有的日期选择器,您会从日期选择器中获得不同的值。它还取决于您存储日期的格式(在本例中为字符串)。
你能帮我举个简单的例子吗? https://stackblitz.com/edit/angular-hbqguu
编辑: 我创建了一个数组:
public obj = [{
name: "jan",
date: "20.03.2010"
},{
name: "ion",
date: "10.01.2003"
},{
name: "caesar",
date: "01.02.2009"
},{
name: "chris",
date: "17.03.2015"
}]
如您所见,我正在尝试过滤具有“DD.MM.YY”格式的特定日期的对象。因此,我为两个不同的日期类型输入创建了函数。
<div>
<p>Filtering by date range</p>
<input type="date" (change)="changeFirstInput($event)"> -
<input type="date" (change)="changeSecondInput($event)">
<span>
<ul>
<ng-container *ngFor="let o of obj">
<li> {{o.name}} {{o.date}}</li>
</ng-container>
</ul>
</span>
</div>
过滤函数
public date1: Date = new Date("2000-01-01");
public date2: Date = new Date();
changeFirstInput(e){
this.date1 = e.target.value;
console.log(this.obj.filter(o => new Date(o.date) >= this.date1 &&
new Date(o.date) <= this.date2 ));
}
changeSecondInput(e){
this.date2 = e.target.value;
console.log(this.obj.filter(o => new Date(o.date) >= this.date1 &&
new Date(o.date) <= this.date2 ));
}
我的过滤器函数返回一个空数组[]。我不太确定如何比较日期,我想这取决于您上面提到的所有格式。
【问题讨论】:
-
如果您在问题本身中提供一些示例数据作为您从 datepicker 获得的文本和格式会更好
-
我做到了!谢谢你提到它
标签: html angular typescript date