Angular HTML:将字符串日期时间与当前日期时间进行比较



如何比较"2022-01-07 15:43:00";angular html的*ngIf中具有当前日期时间的字符串变量?

请提供帮助和指导。

您可以使用ngIf指令中的函数,如*ngIf="showBasedOnDate(date)",在TS文件中创建此函数并处理那里的所有逻辑。返回truefalse以显示元素。

<div *ngIf="showBasedOnDate(date)"> 
I am shown
</div>
showBasedOnDate(date) {
// here you can have as much logic as you would like, based on your needs. 
return (date === new Date() );
}

问题是:这真的是你想要的吗?该元素仅在相当短的时间内可见。我想你想在达到给定时间后显示一个元素。

还要记住,将方法绑定到模板通常被认为是不好的做法,因为它在任何渲染周期都会重新计算。绑定到在给定时间发出的异步Observable将是一种更好的方法。

所以你的绑定可能看起来像

*ngIf="(isNow$ | async)===true"

而您的具体实现可能类似

isNow$: Observable<boolean>;
...
const dateDifference = date-Date.now();
this.isNow$ = of(true).pipe(delay(dateDifference);

这基本上可以让你计算力矩,然后从那时起在dom中显示元素。如果你真的只想在时间相等的时刻看到DOM元素,并立即再次关闭它,那么你应该将Observable重新发出为false。

最新更新