【发布时间】:2020-11-17 09:22:07
【问题描述】:
我有一个包含日期的数组。我想要做的是仅在我的 html 页面上显示等于或大于今天的那些。我使用了 moment.isAfter() 但此时显示所有日期。我做错了什么?
html
<div *ngIf="isShown" id="divshow">
<div *ngFor="let rez of dates" style="cursor: pointer;">
{{rez.date}} par {{rez.text}}
</div>
</div>
ts
dates = [
{ date: "2020-11-01", text: "réservé par équipe 1" },
{ date: "2020-11-20", text: "réservé par un équipe 2" }
];
todayDate:Date = new Date();
toggleShow() {
this.isShown = ! this.isShown;
let now = this.datepipe.transform(this.todayDate, 'yyyy-MM-dd');
for (var dat of this.dates) {
let range = dat.date;
let futureDate = moment(range).isAfter(now);
console.log(futureDate);
}
}
【问题讨论】:
-
this.dates = this.dates.filter(d => {return moment(d.date).isAfter(now)});应该可以工作。请注意,如果您执行代码,您将丢失今天之前的所有日期。 -
很高兴,您还可以使用
pipe仅显示今天之后的日期。这样您就不会更改数组中的任何数据。